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'
添加回答
舉報