侧边栏壁纸
  • 累计撰写 218 篇文章
  • 累计创建 59 个标签
  • 累计收到 5 条评论

为什么一个 byte 类型存储的数字范围是-128~127

barwe
2022-03-26 / 0 评论 / 0 点赞 / 706 阅读 / 362 字
温馨提示:
本文最后更新于 2022-04-03,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

byte 类型是有符号的 8 位整型:

  • 1111 1111表示-127,即$-(2^7-1)$
  • ...
  • 1000 0001表示-1
  • 1000 0000表示-128,即$-2^7$
  • 0000 0000表示0
  • 0000 0001表示+1
  • ...
  • 0111 1111表示+127,即$2^7-1$

按照符号位的逻辑,1表示负数,0表示正数,那么0000 0000应该表示+0,1000 0000应该表示-0。在我们的认知中,0没有正负,或者说+0和-0实际上是一个东西,然而在计算机看来,0000 00001000 0000是两个东西,这种不一致性会给计算带来很大的问题。所以一般在计算机中,我们用1000 0000来表示-128。注意这里的1000 0000实际上是一个有符号的整数,无符号的1000 0000表示的是+128。有符号的单字节整数不能表示大于等于128的整数。

0

评论区