使用與運算符代替求餘運算符的技巧

1.性能對比:性能

求餘運算:a % b就至關與a-(a / b)*b 的運算。效率

與運算:就是一個指令的事集合

2.在特殊場景下,是否能用與&替代%呢?數字

在對10進行求餘的時候,咱們發現,餘數老是整數中的個位上的數字,而不用管其餘位是什麼;運算符

在與運算中,咱們常常須要使用位操做符&來取某些位上的值,例如使用0xff&0x17ae來獲取低8位的值,如今咱們已經發現有點關聯了,若是求餘結果值的範圍恰好跟是[0,求餘的底數(a%b中的b))集合同樣,那麼低位就是求餘的結果。

23%16 == 7

23 (0x17)& 0x0F == 0x07

因此,當須要對2的次冪進行求餘時,能夠是使用&運算符來代替,效率會倍兒棒。

當x=2^n(n爲天然數)時,

a % x = a & (x - 1 )

相關文章
相關標籤/搜索