首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么Java中的字节范围是从128到127?

为什么Java中的字节范围是从128到127?
EN

Stack Overflow用户
提问于 2010-09-02 02:33:38
回答 6查看 78.5K关注 0票数 82

我不明白为什么一个字节可以接受的最低值是-128。我可以看到最高的值是127,因为它是二进制的01111111,但是如何表示只有8位的-128,其中一位用于符号?正128应该已经是8位了,也就是10000000,然后你需要第9位来表示负号。

有人能帮我解释一下吗。

EN

回答 6

Stack Overflow用户

发布于 2010-09-02 02:42:16

正如James在他的评论中指出的那样,这是因为这就是2的补码的工作方式。

换句话说,你可以表示2^8 = 256种值。在本例中,它被用作128个负数、127个正数和0。如果我们使用7位来表示值,+1位来表示一个符号,我们可以少表示一个值,并且也会有两个零(这将是非常不幸的,因为比较两个值将会因为此而更加复杂)。

票数 8
EN

Stack Overflow用户

发布于 2016-07-15 04:17:09

基本数字类型可以表示2^n个数字。看一个case n=2。你可以表示四种情况,让我们称它们为a,b,c,d。然后你可以同意a=-2, b=-1, c=0, d=1 (这是可接受的方式)或a=-1, b=0, c=1, d=2 (可能,但不使用)。因此,如果你只有一个零,并且保持2^n个状态,那么增加nabs(min) != max会移动边界,但abs(min) != max仍然有效。

票数 3
EN

Stack Overflow用户

发布于 2016-09-01 19:20:48

字节由8位组成->1位符号(正或负)7位值

因此,范围-2^7负(-128 )到2^7 -1正(127)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3621067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档