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