我的 C# 程序中有以下简单等式,用于将数字转换为结果值:
sectorSize = 1 << sectorShift;
是否有某种逆向操作也能让我走另一条路?
sectorShift = ???
我知道您可以实现循环,但这有点矫枉过正。我以前从来没有这样做过,所以我不知道,也无法在网上找到任何相关信息。当 sectorSize 是 2 的幂时,我需要的等式只需要产生有效结果;不管我在乎什么,域的其余部分都可以下 hell 。
最佳答案
这里有五种方法可以在 C 中执行此操作。将它们转换为正确的 C# 留作练习。 要格外小心。
http://graphics.stanford.edu/~seander/bithacks.html#IntegerLogObvious
坦率地说,我个人总是会顺其自然。我不清楚为什么您认为简单且明显正确的代码是“矫枉过正”。
关于c# - 反转位移运算符/2 的幂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9915437/