3 回答
TA贡献1790条经验 获得超9个赞
计算二进制表示中 1 的数量。其中有 63 个。让我们写入 64 位,这样我们就可以看到前导 0:
0111111111111111111111111111111111111111111111111111111111111111
这是最大的 64 位整数:63 个 1 位,第 64 位为 0。如果最左边的位是 1,我们将有-1. 哦亲爱的!当符号位为 1 时,我们得到负数。那不好。64 个 1 实在太多了。
以上,4人一组:
0111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111
并以十六进制表示:
0111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111
7 f f f f f f f f f f f f f f f
TA贡献1796条经验 获得超4个赞
在 2 的补码中,可以用N位表示的最高正数0后跟N-1 1's。将所有N位设置为1产生 的表示-1。
所以在 64 位系统上,最大整数是 63 个 1 位。以十六进制表示,7后跟 7 f。
TA贡献1828条经验 获得超13个赞
在 64 位表示中,可以表示的最高数是2^63-1,
>>> import sys
>>> sys.maxint
9223372036854775807
>>> hex(9223372036854775807)
'0x7fffffffffffffff'
>>> (2**63)-1
9223372036854775807L
它适用于任何 N 位表示。例如对于 8 位,最大值为2^7-1
>>> hex(127)
'0x7f'
>>> hex(128)
'0x80'
添加回答
举报
