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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 肖小龙 中级黑马   /  2016-9-17 22:24  /  1204 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

-128是怎么来的

10 个回复

倒序浏览
步骤:  1.确定byte是1个字节,也就是8位  2.最大的应该是0111 1111,因为第一位是符号位,0表示正数  3.最小的应该是1000 0000,同理,表示负数最小的(1111 1111是最大的负数-1)  4.0111 1111即127
回复 使用道具 举报
本帖最后由 肖小龙 于 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  是怎么算来的
回复 使用道具 举报
我想你问的是-128的原码到底是多少?
首先,计算机存储整数是以补码形式存在的。正数的补码即原码,负数的补码是原码取反加1。
其次,理论上讲 0111 1111代表最大的正数127,0000 0000代表0,1111 1111应该是最小的负数才对,可是最后这个数是-127。所以这就是问题,我们自以为的东西不一定正确。
第三,换一个角度考虑,1000 0000到底应该表示谁呢?对了,它就是代表-128,它就是-128的补码,而且如果你想倒推的话,-128是没有原码的。
so ,就是这样喽!

评分

参与人数 1黑马币 +2 收起 理由
肖小龙 + 2 很给力!

查看全部评分

回复 使用道具 举报
ts5210ts 发表于 2016-9-18 00:29
我想你问的是-128的原码到底是多少?
首先,计算机存储整数是以补码形式存在的。正数的补码即原码,负数的补 ...

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

北京校区,还是一个菜鸟
回复 使用道具 举报
暖贴=========()
回复 使用道具 举报
一个字节是八位二进制数,最高为1代表负数,所以是-128.
回复 使用道具 举报
byte是1个字节,也就是8位  2.最大的应该是0111 1111,因为第一位是符号位,0表示正数  3.最小的应该是1000 0000,同理,表示负数最小的(1111 1111是最大的负数-1)  4.0111 1111即127
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马