所以当我读到的时候~
,
对每个位执行 NOT 运算符。
所以我尝试了:
0 = 00000000000000000000000000000000
so ~0 should be
~0 = 11111111111111111111111111111111
但是当我尝试时,它返回-1
. 不是11111111111111111111111111111111
十进制4294967295
吗?
所以当我读到的时候~
,
对每个位执行 NOT 运算符。
所以我尝试了:
0 = 00000000000000000000000000000000
so ~0 should be
~0 = 11111111111111111111111111111111
但是当我尝试时,它返回-1
. 不是11111111111111111111111111111111
十进制4294967295
吗?
它被解释为有符号整数,并且在二进制补码中,所有位为 1 的整数是-1
.
仅当类型为无符号时。有符号整数使用最高位作为否定标志 - 因此将其设置为 1 会导致负数。请参阅二的补码。
1
所有s的位模式4294967295
用于无符号整数或超过32 位的有符号整数。对于以二进制补码表示的32 位有符号整数,其.-1