Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 20位整数数学_C#_.net_Math - Fatal编程技术网

C# 20位整数数学

C# 20位整数数学,c#,.net,math,C#,.net,Math,如何在C#中仅使用20位而不是32位进行整数的加法/减法/乘法和除法 这些运算会比32位精度快吗 例如,此.NET库的特点是20位和30位算法具有不同的速度: 谢谢。如果您不编写自己的代码,您将无法手动执行位旋转,或者使用32位操作,然后应用掩蔽来限制可用范围 它们肯定不会比32位运算快,因为这是处理器本机支持的。处理器中有一些处理器,因此使用32位数字进行运算非常快。它比你们能写的任何代码都要快,因为它在处理器中是“有线”的 20位数字的运算可以用模运算(即mod 2^20)模拟 如何加/减/

如何在C#中仅使用20位而不是32位进行整数的加法/减法/乘法和除法

这些运算会比32位精度快吗

例如,此.NET库的特点是20位和30位算法具有不同的速度:


谢谢。

如果您不编写自己的代码,您将无法手动执行位旋转,或者使用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位快。