2011-08-15 74 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)