我怀疑字节数据类型有1
字节内存,这意味着8
位,其中1
位保留为符号位,留下7
位数值。
因此7
位可以具有最高值
2 6 2 5 2 4 2 3 2 2 +2 1 +2 0 = 127
那么为什么字节数据类型的限制是-128 to 127
?
答案 0 :(得分:4)
您有8
位,因此2
8
= 256
种可能性。在-128
和127
之间(包括),正好有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。