java中字节数据类型的限制是-128到127?

时间:2015-06-17 10:42:25

标签: java

我怀疑字节数据类型有1字节内存,这意味着8位,其中1位保留为符号位,留下7位数值。

因此7位可以具有最高值

  

2 6 2 5 2 4 2 3 2 2 +2 1 +2 0 = 127

那么为什么字节数据类型的限制是-128 to 127

3 个答案:

答案 0 :(得分:4)

您有8位,因此2 8 = 256种可能性。在-128127之间(包括),正好有256个整数。

在您的计算中,您计算​​0两次,一次为+0000000,一次为-0000000

答案 1 :(得分:4)

您需要了解2's complement notation. 2的表示是1的补码的变体,但没有 有2个表示为0.
这使得运算(加法,真正)的硬件比运行速度快 其他陈述。
一个3位示例

bit pattern: 100 101 110 111 000 001 010 011
1's comp:     -3  -2  -1   0   0   1   2   3
2's comp:     -4  -3  -2  -1   0   1   2   3

负值全部 滑动 减一,消除额外 零代表

答案 2 :(得分:3)

是的,您已经回答了自己的问题,如果您有7位的数字表示,这意味着您可以拥有 128 可能的数字。所以 0-127 总共有128个值,但是你可以将其他位用于128个负值。由于0已经在正值(0-127)中计算,因此允许128个负值,因此总范围为-128到+127。