我参加了一些 c/c++ 课程,并且我了解 int 类型大小受 CPU 架构的限制。
对于 32 位,int 的最大值是2^32
( 4,294,967,295
),但是当我使用计算器或 excel 时,我得到的数字很大,而且比2^32
.
我真的不明白这个程序如何打印出比 2^23 value 更大的值。
我参加了一些 c/c++ 课程,并且我了解 int 类型大小受 CPU 架构的限制。
对于 32 位,int 的最大值是2^32
( 4,294,967,295
),但是当我使用计算器或 excel 时,我得到的数字很大,而且比2^32
.
我真的不明白这个程序如何打印出比 2^23 value 更大的值。
您仍然可以在 32 位系统中使用大于 32 位的值。事实上,有 BIGINT 库(如GMP)允许您使用任意大的整数。这些庞大的数字只需要通过软件而不是硬件来处理。
[x86-specific example] 在简单的 32 位加法使用add
指令的情况下,该指令将两个 32 位寄存器相加,64 位或 BIGINT 加法需要一次将数字相加 32 位,从一个手动传播进位除了下。
也可以看看: