【发布时间】:2023-03-18 11:12:01
【问题描述】:
根据维基百科:
数字 2^63 − 1= 9,223,372,036,854,775,807,是计算中 64 位有符号整数的最大值。
如果我正确理解这一点,这意味着像添加超过此阈值的数字这样的计算是不可能的。另一方面,在我的机器上运行print(2**63+2) 或print(2**100) 时会给出正确答案。所以我不明白“计算中64位有符号整数的最大值”的含义。
【问题讨论】:
-
为什么这让你感到困惑? Python 不使用固定大小的整数
-
投票结束,直到您明确说明导致您困惑的假设。现在你提出了一堆本质上不相关的事实并声称混淆了。
-
“如果我理解正确,这意味着像添加超过这个阈值的数字这样的计算是不可能的。”仅当您使用 64 位整数时。例如,您可以使用 128 位整数或任意大小的整数(如 Python 中的
int类型)。 -
注意,word-size 确实对整数的最大大小设置了理论上的限制,因为用于存储表示整数的字节的数组被限制为由字长(64 位进程上的 64 位)。当然,在地址空间用完之前,您实际上可能会先用完内存