据我了解,目前进行整数除法的方法是在硬件中计算逆,然后执行乘法。
我有一些 C# 代码,其中大量时间花在整数除法上,值很少更改,以至于可以缓存它们的值。
我想在软件中执行硬件算法,即计算除数的倒数并将所有这些除法变成乘法。有谁知道执行此转换的算法,或者更好的是,CLR 中是否有可以自动执行此操作的东西?
最佳答案
有一个很好的 blog post series on the topic of integer division by multiplication 。它确实包含了自己实现转换所需的一切。
关于c# - 通过计算和存储逆的快速整数除法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11234393/