2011-08-15 54 views
2

给定两个数字a和b,其中b的形式为2 k其中k是未知数。使用按位运算符计算%b的有效方式是什么?按位模计算

+5

当问一个问题家庭作业,给我们一点努力就在你身边。你怎么看?你在哪里遇到困难? – Oded

+1

只要_a_为正值,显而易见的解决方案就会起作用,但通过纯粹的位操作来实现负操作数的'%'的正确行为将变得复杂。 –

+1

最有效的方法是使用DIV,一个汇编指令和DX寄存器中的模数。为什么这是一种更低效的方式! – QuentinUK

回答

4

和(B-1)== A%B(b为2^K)

ex. a = 11 (1011b), b = 4 (0100b) 
11/4 = 2 R3 
11 % 4 == 11 AND (4-1) 
11 (1011b) AND 3 (0011b) == 3 (0011b)