定义:
在计算机系统中,数值一律用补码来表示和存储。
表示方法:
正数的补码是其本身原码,也是其本身反码;负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后再+1,也可以认为是在其反码的基础上,再+1。
举例:(4位二进制数)
真值 | 原码 | 反码 | 补码 | 真值 | 原码 | 反码 | 补码 |
0 | 0000 | 0000 | 0000 | -0 | 1000 | 1111 | 0000 |
1 | 0001 | 0001 | 0001 | -1 | 1001 | 1110 | 1111 |
2 | 0010 | 0010 | 0010 | -2 | 1010 | 1101 | 1110 |
3 | 0011 | 0011 | 0011 | -3 | 1011 | 1100 | 1101 |
4 | 0100 | 0100 | 0100 | -4 | 1100 | 1011 | 1100 |
5 | 0101 | 0101 | 0101 | -5 | 1101 | 1010 | 1011 |
6 | 0110 | 0110 | 0110 | -6 | 1110 | 1001 | 1010 |
7 | 0111 | 0111 | 0111 | -7 | 1111 | 1000 | 1001 |
让我们尝试用补码进行加法运算!
例: 0001+0001=0010,1+1=2
0000+0000=0000,0+(-0)=0
0001+1111=0000,1+(-1)=0
由此我们知道,补码中-0不存在。
本文固定URL:https://www.dotcpp.com/qa/33