Skip to main content
 首页 » 编程设计

python之在 Python 中存储超过 9,000 位的大数字

2025年05月04日8zfyouxi

我打算在 Python 中使用非常大的数字,但想知道 Python 是否可以处理非常大的数字。这些数字最多包含 3,000 个零。

还有,一个带 3,000 个零的 1 使用了多少字节?

第三个问题,如何使用 Python 将一个数字作为整数保存到一个文件中而无需 str() 呢?

请您参考如下方法:

Python 可以使用 long 类型存储任意长的整数,甚至允许您通过向它们附加 L 来指定 long 文字(例如 0L 是一个 long 零,而 0 是一个 int)。更好的是,当计算结果太大而无法用 int 表示时,它会自动将数字从 int“提升”为 long >。 long 是一种成熟的数字类型,与所有 Python 数字操作兼容。

如果您需要的不仅仅是整数,那么您需要 decimal 模块,它具有 Decimal 类型,可提供任意大小和精度的实数,而没有固有的问题到二进制浮点表示。

long 和 Decimal 的缺点是它们分别比 int 和 float 慢,因为后者有本地硬件支持。但是,对大量数字进行数学计算比根本无法使用这些数字要慢一些。

至于大小,int 对象在 32 位 Python 中是 12 个字节。对于内部 32 位数量来说,这个看似很大的大小是由于 Python 的“一切皆对象”方法。 (我相信,但不要引用我的话,值有 4 个字节,从实例到类型的指针有 4 个字节,引用计数器有 4 个字节,用于确定对象何时可以是垃圾-collected。这些字段在 64 位版本的 Python 上可能更大。)

long 的大小各不相同,因为它们根据数量(加上对象开销)而变化,但是任何 long 值的大小都可以使用 sys.getsizeof().