如何使用按位运算符实现除法(不仅仅是除以 2 的幂)?
详细描述一下。
最佳答案
进行除法的标准方法是实现二进制长除法。这涉及减法,所以只要您不认为这不是按位运算,那么这就是您应该做的。 (请注意,您当然可以使用按位逻辑运算非常繁琐地实现减法。)
本质上,如果你在做 Q = N/D
:
N
和 D
中最重要的那些。 t = (N - D);
。 (t >= 0)
,则将 Q
的最低有效位设置为 1,并设置 N = t
。 N
1。Q
1。根据需要循环尽可能多的输出位(包括小数),然后应用最终移位以撤消您在步骤 1 中所做的操作。
关于bit-manipulation - 使用按位运算符实现除法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5284898/