8 位变量可以保存多少值?

Sha*_*med -1 memory

可能答案是256,但我对此不满意。

假设一个变量有8位,这意味着它的第8位可以保存值256。但它还有其他七位。总值不是所有位的总和吗?

对我来说,8 位变量保存的最终值将是所有位的总和。但事实并非如此。为什么?

yBr*_*sky 10

8位可以容纳的最大值是:11111111,等于255。如果你有一个有符号的值,它可以容纳的最大值是127,最左边的位用于符号。

二进制 10000000 等于 128 (2 ^ 7),而不是 256。我认为这就是您的困惑所在。

00000001 = 2 ^ 0 = 1
00000010 = 2 ^ 1 = 2
00000100 = 2 ^ 2 = 4
00001000 = 2 ^ 3 = 8
00010000 = 2 ^ 4 = 16
00100000 = 2 ^ 5 = 32
01000000 = 2 ^ 6 = 64
10000000 = 2 ^ 7 = 128
Run Code Online (Sandbox Code Playgroud)