【发布时间】:2018-02-10 20:17:51
【问题描述】:
我使用sys.maxsize 检查了 Python 持有的整数的最大大小,它返回给我9223372036854775807。
那为什么我还能存储大于这个范围的值呢?
存储一个整数需要多少字节,Python会根据整数的大小改变字节数吗?
我正在使用 Python 3.6
【问题讨论】:
-
您确实意识到字节数与这些字节可以表示的值不同吗?
-
在 Python 2 中,任何大于
2^63 - 1的整数都是long,并将用尾随L表示:9223372036854775808L。 -
@ZachGates 与这个问题并不真正相关。
-
基本上,
sys.maxsize不是int的最大大小。它是 机器字 的最大大小,因此,在您的 64 位系统上,即2**63 - 1。这许多 bytes 基本上就是可以分配多少内存。请注意,这就是为什么在 32 位版本的 Python 上,无论您的硬件支持多少,您都不能分配超过 4 GB 的内存。这是因为最大可寻址大小是2**32 - 1 == 4294967295。只是碰巧在 Python 2 中,int类型使用机器字的大小,但一个可以使用 128 位... -
你把它和
maxint混在一起了,重复的似乎是对的
标签: python python-3.x