C# 20位整数数学
如何在C#中仅使用20位而不是32位进行整数的加法/减法/乘法和除法 这些运算会比32位精度快吗 例如,此.NET库的特点是20位和30位算法具有不同的速度:C# 20位整数数学,c#,.net,math,C#,.net,Math,如何在C#中仅使用20位而不是32位进行整数的加法/减法/乘法和除法 这些运算会比32位精度快吗 例如,此.NET库的特点是20位和30位算法具有不同的速度: 谢谢。如果您不编写自己的代码,您将无法手动执行位旋转,或者使用32位操作,然后应用掩蔽来限制可用范围 它们肯定不会比32位运算快,因为这是处理器本机支持的。处理器中有一些处理器,因此使用32位数字进行运算非常快。它比你们能写的任何代码都要快,因为它在处理器中是“有线”的 20位数字的运算可以用模运算(即mod 2^20)模拟 如何加/减/
谢谢。如果您不编写自己的代码,您将无法手动执行位旋转,或者使用32位操作,然后应用掩蔽来限制可用范围 它们肯定不会比32位运算快,因为这是处理器本机支持的。处理器中有一些处理器,因此使用32位数字进行运算非常快。它比你们能写的任何代码都要快,因为它在处理器中是“有线”的 20位数字的运算可以用模运算(即mod 2^20)模拟 如何加/减/乘和 仅使用20位除以整数 而不是C#中的32位 使用位掩码将32位整数的前12位归零:
int twentyBitSum = (a + b) & 0xFFFFF;
这些行动会比以前更快吗
32位处理器
不。用硬件本身不支持的大小做算术是额外的工作。你能告诉我们为什么你只想使用20位吗?我不得不怀疑他们在这些备用位中放入了一些额外的非坐标数据。@Frank:位数决定了运算的精度。@cyborg:填充剩余的位没有解释为什么20位运算比30位运算快。为什么这个.NET库的20位和30位运算速度不同@devdept:请更新您的问题以包含所有相关信息。请不要在注释中添加相关事实。@devdept:这取决于它们执行的自定义操作,看起来它们非常专业。在某些情况下,通过使用20位坐标系,它们可能获得更高的内存效率。但你真的得问问作者。你想实现什么?我理解你在20位或30位坐标系下可以实现的不同精度,但不理解为什么后者使用.NET会更快。。。我只是想理解。@devdept:就我所见,所有的基准测试都显示20位比30位快。