int 8 占一个字节,为什么范围是-128 到 127?
由于有符号位的存在,所以负数的值,最低可以到-128.
负数情况:负数占一位
原码 1000 0000
反码 1111 1111
补码 1000 0000 换算成二进制 -128
正数情况:正数占一位
原码 0111 1111
反码 0111 1111
补码 0111 1111 换算成二进制 127
对于有符号的而言
二进制的最高位是符号位:0表示正数,1表示负数
1 => [0000 0001]
-1=> [1000 0001]
正数的原码、反码、补码都一样
负数的反码 = 它的原码符号位不变,其他取反(0->1 , 1->0)
负数的补码 = 它的反码+1
1 ==> 原码 [0000 0001] 反码[0000 0001] 补码[0000 0001]
-1 ==> 原码 [1000 0001] 反码[1111 1110] 补码[1111 1111]
0的反码,补码都是0
在计算机运算的时候,都是以补码的方式来计算的
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: