在32位CPU上实现Int64

时间:2010-11-20 01:09:02

标签: .net 64-bit clr 32bit-64bit 32-bit

我有好奇心的问题。

如何为32位处理器实现Int64我可以看到三个选项

  1. 32位处理器具有允许64位算术的某种扩展
  2. Int64完全在CLR中实现,它通过使用32位操作实现64位算术
  3. 某些 32位处理器可以执行64位运算,CLR使用此逻辑。在其他处理器上,CLR回退到它自己的64位逻辑实现。
  4. 第一种情况看起来似乎不合理,因为它意味着64位处理器现在应该能够进行128位算术运算。第二个提出了一个问题,即如何有效地完成。第三种看起来想要统一两种方法的最差特征。

1 个答案:

答案 0 :(得分:6)

  • 像旧Pentiums这样的Intel x86处理器(作为32位处理器的一个例子)已经能够长时间进行64位算术甚至128位算术(XMMM0-XMM7
  • 仅使用32位注册表的64位算术很好documented
  • CLR的平台特定实现可以自由地实现上述之一,或实现其他东西以满足要求。