关于 64 位有符号整数的最大可计算值的困惑 [重复]

Posted

技术标签:

【中文标题】关于 64 位有符号整数的最大可计算值的困惑 [重复]【英文标题】:Confusion about the maximum computable value for 64-bit signed integer [duplicate] 【发布时间】:2020-08-26 07:51:39 【问题描述】:

根据***:

数字 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 位)。当然,在地址空间用完之前,您实际上可能会先用完内存 【参考方案1】:

如果您对 python 如何做到这一点感兴趣,请查看article

【讨论】:

以上是关于关于 64 位有符号整数的最大可计算值的困惑 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 IA32 上将带符号的整数相加成更大的和。 32位有符号整数的64位总和?

将 32 位有符号整数转换为 24 位有符号音频数据

Java中处理高精度数据计算

Scala学习

Scala 数据类型

Scala 数据类型