|
通俗的说一下吧,如果是二位十进制,你可以表示0-99之间的整数,如果想表示负数,那只能表示一半的整数和一半的负数了。差个负数的一对数,互补,意思是它们加起来为100,刚好溢出向第三位进位。 那么如果是一个字节,那么它们相加为256,如果二个字节相加为65536 然后我们简单用一字节来讨论,9用二进制来表示为0000 1001,把它各位取反则为1111 0110,这样加起来就是各位都是1,还得加上1才能向上进位,然后一字节的八位都是0,所以各位取反后还得加1后才是负数的反码。 |
对的,谢谢学习到了。![]() |
| 原码10001001---反面码11110110----补码11110111 应该是这个过程吧 |
|
-9的8位二进制补码是11110111。 补码的计算过程 原码:正数的原码就是其本身,负数的原码是其绝对值的二进制表示。例如,9的原码是00001001,-9的原码是10001001。 反码:正数的反码与原码相同,负数的反码是其原码的每一位取反(0变1,1变0),符号位除外。例如,-9的反码是11110100。 补码:补码是反码加1。例如,-9的补码是11110100 + 1 = 11110101,但这是8位二进制表示的错误表示,实际正确的补码是11110111。 通过上述步骤,我们可以得到-9的8位二进制补码为11110111。 |