负数补码是反码加一,负七的反码最后一位是零,直接加一,但负十的反码最后一位是一,加一就是二了,怎么回事啊
问题描述:
负数补码是反码加一,负七的反码最后一位是零,直接加一,但负十的反码最后一位是一,加一就是二了,怎么回事啊
答
计算机中的负数是以其补码形式存在的 补码=原码取反+1
一个字节有8位 可以表示的数值范围在 -128到+127
用二进制表示也就是 10000000 - 01111111(注意:最高位表示符号)
最高位是1的都是负数 最高位是0的都是正数
如-7 原码是 10000111 然后取反(最高位是符合不用取反)得11111000
加一 得11111001 那么-7的二进制数就是 11111001
再如 -10 原码是 10001010 取反得 11110101 加一得 11110110
那么-10的二进制数就是 11110110
二进制数是逢二进一 只有0和1两个数字 没有2