0

我参加了一些 c/c++ 课程,并且我了解 int 类型大小受 CPU 架构的限制。

对于 32 位,int 的最大值是2^32( 4,294,967,295),但是当我使用计算器或 excel 时,我得到的数字很大,而且比2^32.

我真的不明白这个程序如何打印出比 2^23 value 更大的值。

4

1 回答 1

2

您仍然可以在 32 位系统中使用大于 32 位的值。事实上,有 BIGINT 库(如GMP)允许您使用任意大的整数。这些庞大的数字只需要通过软件而不是硬件来处理。

[x86-specific example] 在简单的 32 位加法使用add指令的情况下,该指令将两个 32 位寄存器相加,64 位或 BIGINT 加法需要一次将数字相加 32 位,从一个手动传播进位除了下。

也可以看看:

于 2012-10-16T17:38:16.620 回答