您的位置:首页 > 其它

为什么byte的取值范围是-128到127

2016-03-25 16:35 387 查看
本文摘自:http://bbs.itheima.com/thread-280678-1-1.html

-128到127.共256个数。刚好可以用一个字节(8位)表示出来(2^8=256);

其实,1111 1111表示的是-1,而不是-128;

首先,因为要表示出负数,所以它的最高位是符号位。0表示正数,1表示负数;如:

127是0111 1111这样表示的。

-128是1000 0000这样表示的。

127后面是-128,最大的正数加下来是最小的负数。这就跟钟表一样,12点钟后面是1点中钟一样。

因为它是用补码的编码方式。

(下面的看不懂可以直接跳过,或者百度了解之后再看)

正数的补码就是它的原码,也就是单纯的二进制数。负数的话,看下面例子:

1111 1111这个二进制串,首先它最高位是1,明确他是个负数。

那么其余位是111 1111,按位取反得到:000 0000,再加1就是:000 0001

也就是1,再加上符号位。最终结果是-1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: