原码补码反码
例:
7的 原码 0000 0111
反码 0000 0111
补码 0000 0111
-7 原码 1000 0111
反码 1111 1000 第一位1 是符号位表示为负 不变 其他位取反
补码 1111 1001 在反码基础上最后一位加一
补码负数 就是在内存中的存储形式
这时在内存中,把7和-7相加 0000 0111+ 1111 1001= 0000 0000 就是0
正数的反码,补码和原码都是相同的
负数的补码这样求更快:从最低位开始至找到的第一个1均不变,符号位不变,这之间的各位“求反”
计算机的带符号数用补码表示的优点:
- 负数的补码与对应正数的补码之间的转换可以用同一种方法,求补运算完成,可以简化硬件。
- 可将减法变为加法,这样减法就可以用加法器进行计算了。
- 两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。