byte类型取值范围为啥是127到-128( 二 )


■网友
不知道题主清楚了吗,前几天也在搜这个问题,今天找到这篇博文,原码, 反码, 补码 详解 - ziqiu.zhang - 博客园,看完后基本明白了。

■网友
。因为第一位是符号位 所以0111 1111是最大的数127,计算机中存储的是补码,正数的补码还是原码0111 1111 。 既然有127那么就有-127。 -127的原码是1111 1111,负数的补码是原码取反(符号位不取反)加1。 -127的原码 1111 1111 反码 1000 0000 补码 1000 0001 下面解释-128从哪来的: -0的原码 1000 0000 反码 1111 1111 补码: 反码加1以后就是1 0000 0000, 因为byte仅识别8位字节,所以补码是0000 0000。 +0的原码 0000 0000 反码补码都0000 0000 因为日常生活中没有-0, 所以规定0在计算机中表示为0000 0000。以0开头的补码已经全部使用,因为正数原码补码都一样,所以0000 0000到0111 1111补码已经全部占用。以1开头的原码, 原码 -1是1000 0001 -127是1111 1111 补码 1111 1111 1000 0001即补码1000 0001到补码1111 1111是表示-127到-1,这时还剩下一串补码 1000 0000就把这串码表示成-128, 也可以这样想byte类型取值范围为啥是127到-128
【byte类型取值范围为啥是127到-128】
127……1存在,所以也有相应的,-1……-127存在,除去0,补码还剩一串 1000 0000所以规定为-128。还有就是-128只有补码10000000,没有反码和原码。其实我也不知道对不对,我就想说一套比较合理的说法,把自己说服,不然有强迫症非要想知道为什么。很烦的。
■网友
11111111 是 -1,然后 10000000 就是 -128,搜索关键词“补码”


推荐阅读