PHP匿點之巧用位運算符 >

先來回顧下來自官方的位運算符說明:



1、<< 位左移 

實質是將對應的數據的二進制值逐位左移若干位,並在空出的位置上填0,最高位溢出並捨棄。

例 如 

$a=10; 
$b=$a<<2; 
//$b=40

根據手冊描述可以看出位運算可以看出向左移一位,則是實現乘2運算。

性能:

位移操作的運算速度比乘法的 運算速度高很多。因此在處理數據的乘法運算的時,採用位移運算可以獲得較快的速度。 

提示:將所有對2的乘法運算轉換爲位移運算,可提高程序的運行效率 


2、>> 位右移 


實質是將對應的數據的二進制值逐位右移若干位,並捨棄出界的數字。如果當前的數爲無符號數, 高位補零。

例如: 

$a = 25;//11001 
b=a>>2;//等價於:11001 >> 01100, 01100 >> 00110.那麼110 =》 6,即25/4 = 6 
b=(0000 0000 0000 0110)=6 

如果當前的數據爲有符號數,在進行右移的時候,根據符號位決定左邊補0還是補1。

如果符號位爲0,則左 邊補0;但是如果符號位爲1,則根據不同的計算機系統,可能有不同的處理方式。 

可以看出位右移運算,可以實現對除數爲2的整除運算。 


提示: 將所有對2的整除運算轉換爲位移運算,可提高程序的運行效率

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章