簡體   English   中英

int(str) 一個巨大的數字

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM