A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

19 个回复

正序浏览
友人A 发表于 2016-3-8 12:38
我纠正一下层主的意思:-128到127.共256个数。刚好可以用一个字节(8位)表示出来(2^8=256);
其实,1111 1 ...

层主这样用补码来解释,就很好理解了。666
回复 使用道具 举报
mycoder 发表于 2016-3-8 22:36
因为byte占2个字节所以取值范围是2的8次方

byte是占1个字节
回复 使用道具 举报
二楼  学习了
回复 使用道具 举报
byte占用的是一个字节,即8位,整数又有正数和负数,所以是从-128到127
回复 使用道具 举报
一个字节 八个二进制位。 左边第一位代表的是符号 所以是负的 到正的。1000 0000 = -000 0000 = -128
回复 使用道具 举报
友人A 发表于 2016-3-8 12:38
我纠正一下层主的意思:-128到127.共256个数。刚好可以用一个字节(8位)表示出来(2^8=256);
其实,1111 1 ...

这个很全了,很值得借鉴,
回复 使用道具 举报
skxy2016 来自手机 中级黑马 2016-3-9 09:37:28
14#
一个字节占8位,每个位用1或0表示,8位就有2的8次方种可能,就是256,首位代表符号位,那么均分两半,负数一半正数一半,刚好一边是128个数,因为正数有0,所以是-128~127.(只是个人理解,如有不妥之处请指出讨论)
回复 使用道具 举报
因为计算机是使用二进制俩存储数据的,意思的1位数据表示两个状态(或者说是两个数),就是0或1,那么两位数据就表示四个状态,一次类推,8位数据就表示2^8个状态,也就是256个状态(数),而Byte正好是规定为8位且规定Byte的数据类型是表示整数的,那么它就只能表示256个整数。
回复 使用道具 举报
转换为二进制  七个字节最多表示多大的数~~~~~~
回复 使用道具 举报
看了原,反,补才弄清楚,谢谢大家
回复 使用道具 举报
因为byte占2个字节所以取值范围是2的8次方
回复 使用道具 举报
友人A 发表于 2016-3-8 12:38
我纠正一下层主的意思:-128到127.共256个数。刚好可以用一个字节(8位)表示出来(2^8=256);
其实,1111 1 ...

好厉害~
回复 使用道具 举报

我纠正一下层主的意思:-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
回复 使用道具 举报 1 0
三楼正解。
回复 使用道具 举报
fagug 发表于 2016-3-8 00:07
一个byte类型数据是1个字节8比特位,bit为上只有1和0的二进制表示,你把二进制 1111 1111转成十进制就是-12 ...

-128怎么来的
回复 使用道具 举报
楼上说的对
回复 使用道具 举报
一个byte类型数据是1个字节8比特位,bit为上只有1和0的二进制表示,你把二进制 1111 1111转成十进制就是-127,二进制0111 1111转成十进制就是127,所以byte数据的取值范围是-128到127
回复 使用道具 举报
我不怎么记得这几个类型的范围啊。。。
回复 使用道具 举报
{:2_33:}这是规定吧 ,反正我就这么记就行
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马