2 回答
TA贡献1773条经验 获得超3个赞
不是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。
TA贡献1865条经验 获得超7个赞
位是可以存储 0 或 1 的少量计算机空间。
所以,如果我有 32 位,我可以表示范围从
00000...000(32 个零)
到
11111...111(32个)
当以二进制编写时。
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,以不同的方式存储)。
添加回答
举报