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 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!