为什么计算器和excel在32位系统中显示大于2 ^ 31 -1的值?

时间:2012-10-16 17:36:02

标签: operating-system cpu

我参加了一些c / c ++课程,据我所知,根据CPU架构,int类型的大小是有限的。

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

我真的不明白这个程序打印价值如何大于2 ^ 23值。

1 个答案:

答案 0 :(得分:2)

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

[x86特定示例]如果简单的32位加法使用add指令,它添加了两个32位寄存器,则64位或BIGINT加法需要将数字加到32位一次,手动将进位从一个加法传播到下一个。

另见: