首頁 >後端開發 >php教程 >php位元運算子用法實例詳解

php位元運算子用法實例詳解

伊谢尔伦
伊谢尔伦原創
2017-06-21 09:58:121685瀏覽

常見四個位元運算符號:&(位元與),|(位元或),^(位元異或),~(位元取反)

&(位元與):對應位元同時為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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn