如何在C#中仅使用20位而不是32位来加/减/乘和除以整数?
这些操作是否会比32位精度更快?
例如,这个.NET库具有不同速度的20位和30位算术:http://complex-a5.ru/polyboolean/index.html
感谢。
答案 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位操作更快,因为这是处理器原生支持的。