您可能知道,int
s 在内部以二进制形式存储。通常是一个int
包含 32 位,但在某些环境中可能包含 16 或 64 位(甚至不同的数字,通常但不一定是 2 的幂)。
但对于这个例子,我们来看 4 位整数。虽然很小,但对于说明目的很有用。
由于这样的整数有 4 位,因此它可以采用 16 个值之一; 16 是 2 的四次方,即 2 乘以 2 乘以 2 乘以 2。这些值是多少?答案取决于这个整数是否是signed int
or an unsigned int
。与unsigned int
,该值永远不会为负;没有与该值相关的符号。这是 4 位的 16 个可能值unsigned int
:
bits value
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 10
1011 11
1100 12
1101 13
1110 14
1111 15
...这里是 4 位的 16 个可能的值signed int
:
bits value
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 -8
1001 -7
1010 -6
1011 -5
1100 -4
1101 -3
1110 -2
1111 -1
正如你所看到的,对于signed int
最高有效位是1
当且仅当数字为负数时。这就是为什么,对于signed int
s,该位称为“符号位”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)