反码
此条目需要精通或熟悉计算机科学的编者参与及协助编辑。 (2022年2月5日) |
二进制数的反码(英语:1's complement)是指将二进制数每个数字反转得到的数:若某一位为0,则使其变为1,反之亦然。[1]
“反码”的各地常用名称 | |
---|---|
中国大陆 | 反码、一的补码 |
台湾 | 一补数 |
港澳 | 一补码 |
原码 | 将符号位作为有 实际含义的位所得值 |
用反码表示 所得值 |
---|---|---|
0111 1111 | 127 | 127 |
0111 1110 | 126 | 126 |
0000 0010 | 2 | 2 |
0000 0001 | 1 | 1 |
0000 0000 | 0 | 0 |
1111 1111 | 255 | −0 |
1111 1110 | 254 | −1 |
1111 1101 | 253 | −2 |
1000 0001 | 129 | −126 |
1000 0000 | 128 | −127 |
反码表示法(英语:1's complement system)是一种在电脑中用机器码表示有符号数的方式之一,其中正数使用原码,负数使用反码。该表示法常简称反码。
反码在很多算术运算中的表现与这个数的相反数很相似,此特性可使加法电路同时可以运算减法。然而,由于反码中存在多余的负零和其它问题,此方式并未像补码一样被广泛应用。
表示方式
使用反码表示有符号数的方法如下
式中,N为真值,n为编码的位数。
显然,正数的反码等于其原码,而负数的反码则可以通过保留其符号位,将原码的数值位取反得到。
例如,使用4个位元时,+3是0011,用反码表示-3便是1100。下表列出了4-bit二进数所能表示的整数。
二进制数 | 无符号位元 | 有符号位元 | 为反码时 | 为补码时 |
---|---|---|---|---|
0000 | 0 | 0 | 0 | 0 |
0001 | 1 | 1 | 1 | 1 |
0010 | 2 | 2 | 2 | 2 |
0011 | 3 | 3 | 3 | 3 |
0100 | 4 | 4 | 4 | 4 |
0101 | 5 | 5 | 5 | 5 |
0110 | 6 | 6 | 6 | 6 |
0111 | 7 | 7 | 7 | 7 |
1000 | 8 | -0 | -7 | -8 |
1001 | 9 | -1 | -6 | -7 |
1010 | 10 | -2 | -5 | -6 |
1011 | 11 | -3 | -4 | -5 |
1100 | 12 | -4 | -3 | -4 |
1101 | 13 | -5 | -2 | -3 |
1110 | 14 | -6 | -1 | -2 |
1111 | 15 | -7 | -0 | -1 |
相关条目
参考资料
- ^ M Morris Mano; Michael D Ciletti. Digital design : with an introduction to the verilog hdl. 培生教育. 2013: 第27页. ISBN 9780273764526.