黑马程序员技术交流社区

标题: beyt 取值范围是-128到127 [打印本页]

作者: 肖小龙    时间: 2016-9-17 22:24
标题: beyt 取值范围是-128到127
-128是怎么来的
作者: 饭要大口吃    时间: 2016-9-17 22:26
步骤:  1.确定byte是1个字节,也就是8位  2.最大的应该是0111 1111,因为第一位是符号位,0表示正数  3.最小的应该是1000 0000,同理,表示负数最小的(1111 1111是最大的负数-1)  4.0111 1111即127
作者: 肖小龙    时间: 2016-9-17 22:49
本帖最后由 肖小龙 于 2016-9-17 22:51 编辑
饭要大口吃 发表于 2016-9-17 22:26
步骤:  1.确定byte是1个字节,也就是8位  2.最大的应该是0111 1111,因为第一位是符号位,0表示正数  3.最 ...

上面的我知道  127  0111 1111  -127是0111 1111 这是最大的和最小的 -128  是怎么算来的
作者: ts5210ts    时间: 2016-9-18 00:29
我想你问的是-128的原码到底是多少?
首先,计算机存储整数是以补码形式存在的。正数的补码即原码,负数的补码是原码取反加1。
其次,理论上讲 0111 1111代表最大的正数127,0000 0000代表0,1111 1111应该是最小的负数才对,可是最后这个数是-127。所以这就是问题,我们自以为的东西不一定正确。
第三,换一个角度考虑,1000 0000到底应该表示谁呢?对了,它就是代表-128,它就是-128的补码,而且如果你想倒推的话,-128是没有原码的。
so ,就是这样喽!

作者: 饭要大口吃    时间: 2016-9-18 01:30
ts5210ts 发表于 2016-9-18 00:29
我想你问的是-128的原码到底是多少?
首先,计算机存储整数是以补码形式存在的。正数的补码即原码,负数的补 ...

  老哥稳,在哪个校区学呢
作者: 9775菜鸟变大神    时间: 2016-9-18 09:07
byte占用一个字节 也就是八位 2的八次方是256 而0算一位 所以取值从-128到127 你算算加起来是不是256个
作者: litianji2016    时间: 2016-9-18 19:13
byte占8位,2^8=256,把256/2=128,为了同时表示正数范围和负数范围,byte的最大值就是128,可是这里有各0,所以最小值就是-128+1=-127;用数轴概念去联想你就明白了
作者: ts5210ts    时间: 2016-9-20 01:07
饭要大口吃 发表于 2016-9-18 01:30
老哥稳,在哪个校区学呢

北京校区,还是一个菜鸟
作者: 左丘无烈    时间: 2016-9-20 07:55
暖贴=========()
作者: wanglicheng    时间: 2016-9-20 08:14
一个字节是八位二进制数,最高为1代表负数,所以是-128.
作者: 煮酒拭剑赏美人    时间: 2016-9-20 08:40
byte是1个字节,也就是8位  2.最大的应该是0111 1111,因为第一位是符号位,0表示正数  3.最小的应该是1000 0000,同理,表示负数最小的(1111 1111是最大的负数-1)  4.0111 1111即127




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2