PHP基礎語法之 位元運算

寫了幾年PHP的人都好奇說,沒有用過位元運算子。所以,這裡你看二進位看的頭暈,就去T¥M¥D吧。

位元運算子基本上不用,我們也將這個知識設定為了解等級。位運算符的知識點,你不想學習也可以。 等以後用到位運算的時候,再來學習吧。

知識學習等級【了解級,有印象即可】。

##$ a & $bAnd(位元與)將把$a 和$b 中都為1 的位元設為1。 $a | $bOr(位元或)將把$a 和$b 中任何一個為1 的位元設為1。 $a ^ $bXor(位元異或)將把$a 和$b 中一個為1 另一個為0的位元設為1。 ~ $aNot(以位元取反)將 $a 中為 0 的位元設為 1,反之亦然。 $a << $b左移將$a 中的位元向左移動$b 次(每一次移動都表示“乘以2”)。 $a >> $b右移將$a 中的位元向右移動$b 次(每一次移動都表示“除以2”)。
範例說明詳細說明
以上的符號,皆為二進位的運算。

二進位大家絕大多數情況下不會遇到,遇到了補一下二進位這一塊的知識就會了。

<?php
//$x二进制值为:
$x = 5;
//$y二进制值为:
$y = 8;
//结果为13
echo $x ^ $y;
?>

變數#二進位值$x 0101$y1000##1101
#異或解釋:若x,y兩個值不相同,則異或結果為1。若x,y兩個值相同,則異或結果為0。

由此可推1101為$x和$y異或出來的結果,1101用二進位轉10進位工具轉換後的結果就為13。

線上二級制轉十進截圖:

2015-08-02_55bde1c996a04.png#

繼續學習
||
<?php //$x二进制值为: $x = 5; //$y二进制值为: $y = 8; //结果为13 echo $x ^ $y; ?>