【问题标题】:why calculator and excel show value great than 2^31 -1 in 32bit systems?为什么计算器和 excel 在 32 位系统中显示的值大于 2^31 -1?
【发布时间】:2012-10-16 17:36:02
【问题描述】:

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

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

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

【问题讨论】:

  • 他们使用更大的数据类型,如浮点数或大数。

标签: operating-system cpu


【解决方案1】:

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

[x86-specific example] 简单的 32 位加法使用 add 指令,该指令添加两个 32 位寄存器,64 位或 BIGINT 加法需要将数字添加到 32 位 at一次,手动将进位从一个添加到下一个添加。

另见:

【讨论】:

  • 许多架构都支持 adc 指令来达到这个目的。
猜你喜欢
  • 2021-10-28
  • 2016-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-20
  • 1970-01-01
  • 1970-01-01
  • 2019-05-06
相关资源
最近更新 更多