byte的取值范围-128~127
一、一种比较合适的解释是如下图
二、第二种解释
负数部分的补码为10000001-11111111,转回到原码应该是11111111-10000001十进制为-127 ~(-1)
最重要的一点来了。补码里面还有一个没有用。它就是10000000B(人们常用字母“B”来表示二进制(binary)数,用字母“H”表示十六进制(hexadecimal)数.)
这个没法转成原码反码了,直接规定10000000B这个补码对应的是-128。
当然原码为(10000000B)是没有任何意义的,不用去追究了不会有(-0)的
-0的原码是1000 0000,反码是 1111 1111,补码是 10000 0000 ,因为byte只识别8位字节,所以补码是 0000 0000 。+0的原码是 0000 0000 ,反码补码都是其本身,还是0000 0000,我们日常中没 有-0,所以规定0在计算机中表示为 0000 0000。(+0和-0其实是一回事嘛)