繁体   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