byte最大值

happysmhzp 2011-05-29 11:30:25
byte 的最大值-128 为什么是10000000啊?10000000,1代表符号位,剩下的7为最大可以表示127,128 是怎么算出来的啊,各位帮帮忙。
...全文
870 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
凡心未灭 2011-06-01
  • 打赏
  • 举报
回复
用补码法表示负数的规则就是这样,没有为什么的。
-128
①取绝对值:128
②二进制表示:1000,0000
③取反:0111,1111(符号为也要取反,不然取反就没意义)
④+1:1000,0000
将1000,0000化成-128是上面的逆过程。
happysmhzp 2011-05-31
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 bawgiitx 的回复:]
10000000
取反 01111111
+1
10000000
[/Quote]

10000000取反应该是11111111 符号位应该不变的吧(后面的再加1应该是针对二进制来说的吧,不能理解为是在127 的基础上加1吧)。我就不明白10000000怎么算成-128的,0*2的0次+0*2的一次.....+0*2的6次,等于0,再在前面加上一个负号应该是-0(0)啊。-128怎么算的
shine333 2011-05-31
  • 打赏
  • 举报
回复
011....1111是最大值,011.....1111+1正好越界,重新变成最小值
100....0000
TKD03072010 2011-05-31
  • 打赏
  • 举报
回复
楼上正解!!!
bawgiitx 2011-05-31
  • 打赏
  • 举报
回复
10000000
取反 01111111
+1
10000000
happysmhzp 2011-05-29
  • 打赏
  • 举报
回复
能说详细点吗,10000000取反11111111在+1= 10000000 1代表符号位后面的0000000怎么算成128的?
huntor 2011-05-29
  • 打赏
  • 举报
回复
Byte.MAX_VALUE == 127
Byte.MIN_VALUE == -128

补码

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧