在程序中,使用位運算比加減乘除運行效率要高,尤其是在需要多次迭代或者重複大量計算時。
以求兩個數的平均值運算爲例,應用場景可以參見二分法查找有序數組。
first代表數組第一個元素,last代表數組最後一個元素
那麼我們可以使用位運算實現mid = (first+last)/2
mid = first + ((last - first) >> 1);
容易想通等式是成立的。“>>”運算符相當於對運算符前的數值進行除二運算。
mid = first + ((last - first) >> 1)
= first + (last - first)*(1/2)
= (first+last)/2 = mid