20位整数数学

时间:2010-08-21 11:21:56

标签: c# .net math

如何在C#中仅使用20位而不是32位来加/减/乘和除以整数?

这些操作是否会比32位精度更快?

例如,这个.NET库具有不同速度的20位和30位算术:http://complex-a5.ru/polyboolean/index.html

感谢。

3 个答案:

答案 0 :(得分:5)

处理器中有arithmetic units,因此使用32位数进行操作非常快。它比你能编写的任何代码都快,因为它在处理器中是“有线”的。

20位数的运算可以用模运算来模拟(即mod 2 ^ 20)。

答案 1 :(得分:2)

  

如何添加/减去/乘以和   仅使用20位除以整数   而不是C#中的32位?

使用位掩码将32位整数的前12位清零:

int twentyBitSum = (a + b) & 0xFFFFF;
  

这些操作会比这更快   32位行程?

没有。使用硬件本身不支持的大小进行算术运算是额外的

答案 2 :(得分:0)

如果不编写自己的代码,或者手动进行数字操作,或者使用32位操作,然后应用屏蔽来限制可用范围,则不能。

它们当然不会比32位操作更快,因为这是处理器原生支持的。