[英]int(str) of a huge number
如果我有一個太大而無法用 64 位表示的數字,那么我會收到一個包含它的字符串。 如果我使用會發生什么:
num = int(num_str)
我問是因為它看起來工作正常,但我不明白如何,是否為此分配了更多內存?
我被要求檢查一個巨大的數字是否是 2 的冪。有人建議:
def power(self, A):
A = int(A)
if A == 1:
return 0
x =bin(A)
if x.count('1')>1:
return 0
else:
return 1
雖然我理解為什么在正常情況下它會起作用,但數字遠大於 2^64 並且它仍然有效的事實讓我感到困惑。
根據 Python 手冊對整數表示的描述:
這些代表無限范圍內的數字,僅受可用(虛擬)內存的影響。 出於移位和掩碼操作的目的,假設使用二進制表示,並且負數以 2 的補碼的變體表示,這會產生向左延伸的無限符號位串的錯覺。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.