参考文章:
https://segmentfault.com/a/1190000021511009
https://www.cnblogs.com/zhangziqiu/archive/2011/03/30/computercode.html
一、机器数和真值
1、机器数
机器数是一个数在计算机中的二进制表示形式。
机器数带符号,存放在最高位,最高位为0表示正数,最高位为1表示负数
在字长为8的计算机中
十进制:+3 二进制:00000011
十进制:-3 二进制:10000011
2、真值
机器码:00000011 的 真值为 3 (十进制)
机器码:10000011 的 真值为 -3(十进制)
二、原码、反码、补码
1.原码
原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值。
十进制数+3原码为 00000011
十进制数-3原码为 10000011
原码的表示范围
[011111111,11111111] (255,-256)
原码是人容易理解和计算的编码方式。
无符号数用原码。
2.反码
正数的反码是其本身。
负数的反码是其原码基础上,符号位不变,其余各位取反。