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

Memory 8位变量可以保存多少值?,memory,Memory,答案可能是256,但我不满意 假设一个变量有8位,它的第8位的平均值可以容纳256。但它还有其他七位。总值不是所有位的总和吗 对我来说,8位变量持有的最终值是所有位的总和。但事实并非如此。为什么? 8位可容纳的最大值为:11111111,等于255。如果您有一个带符号的值,它可以保存的最大值是127,最左边的位用于符号 二进制10000000等于128(2^7),而不是256。我想这就是你的困惑所在 00000001 = 2 ^ 1 = 1 00000010 = 2 ^ 1 = 2 000001

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

假设一个变量有8位,它的第8位的平均值可以容纳256。但它还有其他七位。总值不是所有位的总和吗


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

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

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

00000001 = 2 ^ 1 = 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

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

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

00000001 = 2 ^ 1 = 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

该值实际上是设置为1的所有位的总和,但第八位的位置值为27(128),而不是您建议的256-最低有效位为20(即1),因此对于八位,MSB为27。您似乎从21(2)开始

对于无符号整数:

位0=20=1
位1=21=2
位2=22=4
位3=23=8
位4=24=16
位5=25=32
位6=26=64
位7=27=128

所有1的总和=255-而不是您建议的256:0到255=28(256)个值


对于2的补码有符号8位类型:
位7=-27=-128

所有1的总和=-1,
而如果位8=0,和=127,
和除位8=-128之外的所有零。
(-128到+127=28(256)个值)



无论哪种方式,8位整数有符号或其他方式都有28(256)个可能的位模式。

该值实际上是所有位的总和,设置为1,但第八位的位值为27(128),而不是您建议的256-最低有效位为20(即1),因此对于八位,MSB为27。您似乎从21(2)开始

对于无符号整数:

位0=20=1
位1=21=2
位2=22=4
位3=23=8
位4=24=16
位5=25=32
位6=26=64
位7=27=128

所有1的总和=255-而不是您建议的256:0到255=28(256)个值


对于2的补码有符号8位类型:
位7=-27=-128

所有1的总和=-1,
而如果位8=0,和=127,
和除位8=-128之外的所有零。
(-128到+127=28(256)个值)



无论哪种方式,8位有符号整数或其他方式都有28(256)个可能的位模式。

这是一个比编程问题更复杂的数学问题。这是一个比编程问题更复杂的数学问题。第一行应该写为2^0=1。第一行应该写为2^0=1