了解普通整数在 Python 中的表示方式
Understanding how plain integers are represented in Python
在阅读 Python 的内置数字类型,特别是 整数 时,我遇到了下面引用的这一行;
Plain integers are at least 32 bits long. The range is at least -2,147,483,648 to 2,147,483,647 (approximately
±
2 billion).
这是否意味着我能想到的任何具有 20 亿位的任意数字都是 Python 将其显示为 普通整数 的限制?如果我应该更具体地问, "32 bits long" 参考上述引用的句子是什么意思。
不是数字20亿,而是实际值20亿
32位的引用表示python可以存储普通整数的位数。位以 2 为底数表示(因为位可以是 0 或 1),而我们更常见的以 10 为底数的数字以 10 为底数表示。以 2 为底数的数字 1 是 1,但是以 2 为底数的数字 2 是 10 - 就像以 10 为底数一样,我们从 9 到 10。
32位可以存储的最大值是你可以翻转32个1或0的组合数。这将使下面的数字成为 2^32
(=4 294 967 296)。但是需要减1才能得到最大值,因为0也是组合,使得最大的无符号数4 294 967 295.
为了也表示负数,第一位通常保留用于标记整数(1 表示负数,0 表示正数)所以它 粗略地 一分为二,得到最小的数字-2 147 483 648 和最大的 2 147 483 647.
比特是计算机的一小部分space,可以存储 0 或 1。
所以,如果我有 32 位,我可以表示
范围内的数字
00000...000(32 个零)
到
11111...111(32 个)
写成binary.
32的个数是4,294,967,295。这意味着,以最简单的方式,我们可以表示从 0 到 4,294,967,295 的所有数字。现在,在大多数情况下,我们也想表示负数,所以我们将 0 to 4,294,967,295
的范围从 -2,147,483,648 to 2,147,483,647
移动一点来划分。 (这是如何完成的本身很有趣,请查看Two's Complement)
因此,您提供的摘录实际上说 Python 中的整数以 32 位存储,这意味着 python 中的整数可以小至 -2,147,483,648 和大至2,147,483,647。 (除此之外,它在内部被视为 bigint,以不同的方式存储)。
在阅读 Python 的内置数字类型,特别是 整数 时,我遇到了下面引用的这一行;
Plain integers are at least 32 bits long. The range is at least -2,147,483,648 to 2,147,483,647 (approximately ± 2 billion).
这是否意味着我能想到的任何具有 20 亿位的任意数字都是 Python 将其显示为 普通整数 的限制?如果我应该更具体地问, "32 bits long" 参考上述引用的句子是什么意思。
不是数字20亿,而是实际值20亿
32位的引用表示python可以存储普通整数的位数。位以 2 为底数表示(因为位可以是 0 或 1),而我们更常见的以 10 为底数的数字以 10 为底数表示。以 2 为底数的数字 1 是 1,但是以 2 为底数的数字 2 是 10 - 就像以 10 为底数一样,我们从 9 到 10。
32位可以存储的最大值是你可以翻转32个1或0的组合数。这将使下面的数字成为 2^32
(=4 294 967 296)。但是需要减1才能得到最大值,因为0也是组合,使得最大的无符号数4 294 967 295.
为了也表示负数,第一位通常保留用于标记整数(1 表示负数,0 表示正数)所以它 粗略地 一分为二,得到最小的数字-2 147 483 648 和最大的 2 147 483 647.
比特是计算机的一小部分space,可以存储 0 或 1。
所以,如果我有 32 位,我可以表示
范围内的数字00000...000(32 个零)
到
11111...111(32 个)
写成binary.
32的个数是4,294,967,295。这意味着,以最简单的方式,我们可以表示从 0 到 4,294,967,295 的所有数字。现在,在大多数情况下,我们也想表示负数,所以我们将 0 to 4,294,967,295
的范围从 -2,147,483,648 to 2,147,483,647
移动一点来划分。 (这是如何完成的本身很有趣,请查看Two's Complement)
因此,您提供的摘录实际上说 Python 中的整数以 32 位存储,这意味着 python 中的整数可以小至 -2,147,483,648 和大至2,147,483,647。 (除此之外,它在内部被视为 bigint,以不同的方式存储)。