常見四個位元運算符號:&(位元與),|(位元或),^(位元異或),~(位元取反)
&(位元與):對應位元同時為1時,在&運算後則為1,否則為0
|(位元或):對應位元有一個為1時,在|運算後則為1,同為0時則為0
^(位元異或):對應位元不同時為1時,在^運算後為1,同時為0時則為0,同時為1時^運算後也是0
~(位元取反):$a+(~$a)=-1
位移在 PHP中是數學運算。向任何方向移出去的位元都被丟棄。 左移時右側以零填充,符號位元被移除表示正負號不被保留,符號位元隨字元變化而變化。 右移時左側以符號位元填充,符號位元不變。
注意:php沒有無符號數,也就是說,php中的數字都是有符號的。
計算機中的運算都是以補碼的形式參加運算的;php位元運算過程如下:(以8位元電腦為例)
以2&-7=?計算為例:
(1)、計算2的補碼:
2->原碼:00000010->反碼:00000010- >補碼:00000010
(2)、計算-7的補碼:
-7->原碼:10000111->反碼:11111000->補碼:11111001
(3)、計算2&-7的補碼->反碼->原碼
2&-7補碼:00000000->反碼:000000000- >原碼:00000000
##(4)、有2&-7原碼得到2&-7的值 所以2&-7 = 0#實例碼如下:<?php $m=8; $n=12; $p=-109; $mn=$m&$n; echo $mn."<br>"; $mn=$m|$n; echo $mn."<br>"; $mn=$m^$n; echo $mn."<br>"; $mn=~$m; echo $mn."<br>"; $mn=~$p; echo $mn."<br>"; ?>輸出結果:
8 12 4 -9 108
以上是php位元運算子用法實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!