二进制的真值,一个1字节的数 八位存储 最高位存放正负号 0为正数,1为负数
比如10000001的真值是-1 00000001的真值是1
一个八位二进制数的取值范围就是【-2的7次幂,+2的7次幂】
原码就是真值的绝对值
比如-1的原码是 00000001 1的原码也是00000001
就是让最高位符号位变成0
反码:
正数的反码是其本身
负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
[+1] = [00000001]原 = [00000001]反
[-1] = [10000001]原 = [11111110]反
正数的补码就是其本身
负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
因为机器使用补码, 所以对于编程中常用到的32位int类型, 可以表示范围是: [-231, 231-1] 因为第一位表示的是符号位.而使用补码表示时又可以多保存一个最小值.