1. 程式人生 > >用位運算來代替乘法、除法以及取模

用位運算來代替乘法、除法以及取模

假設有兩個數,A和B。B為2^n,期中n>=0,A>=0。則:

要求A * B的話,則可使用<<操作符,A << n。

要求A / B的話,則可使用>>操作符,A >> n。

要求A % B的話,則可使用&操作符,A&(B-1)。

如果A為負數的話,則未必成立。比如,當A為-1,B為2的時候,可知(-1)%2=-1,而-(1)&0=0。記住,當我們把乘法,除法及取模運算轉化為位運算時,都要求A>=0。