PHP運算子(四)”位元運算符“執行個體講解

來源:互聯網
上載者:User
我們已經講解了PHP運算子中的“php算術運算子”,“php字串運算子”,“賦值運算子”,今天給大家詳細介紹一下PHP運算子中的 “位元運算符”

位元運算符在PHP中不經常用到,但是他的用處還是很大,下面的內容我們會舉例說明一下位元運算符的用法。

位元運算符是指對二進位位從低位到高位對齊後進行運算,它允許對整型數中指定的位進行求值和操作。

在PHP中的為運算子如下表所示

運算子 說明 例子
& 按位與 $m & $n
| 按位或 $m | &$n
^ 按位異或 $m ^ $n
~ 按位非或按位取反 $m ~ $n
<< 左移 $m << $n
>> 右移 $m >> $n

下面我們用例子來上面一下上表中的運算子

<?php$m=1;                //1=0 00000001$n=2;                 //2=00000010$mn=$m&$n;echo $mn."<br/>";$mn=$m^$n;echo $mn."<br/>";$mn=$m|$n;echo $mn;?>

代碼運行結果:

例子解釋:

$m&$n : 二者都為 1 時為 1 ,否則為 0。即把 $a 和 $b 中都為 1 的位設為 1 ,否則設為 0 。

00000001 ← $m
& 00000010 ← $b

比較結果為00000000,所以輸出0

$m^$n :在按位亦或的過程中,不同為1,相同為0。
00000001 ← $m

^ 00000010 ← $n

所以結果為00000011,進而輸出3。

$m|$n: 在按位或的過程中,有1為1,全0為0,

00000001 ← $m

| 00000010 ← $n

則結果為00000011,所以輸出3

上面的例子講了“按位或”,“按位或”,“按位異或”,下面我們再來看一下後面的三種樣本

按位非或按位取反樣本,代碼如下

<?php$m = 2;$m1 = ~$m;echo $m1;?>

運行結果

此時我們的運行結果為-3,這裡需要注意。

註:在電腦中,負數以其正值的補碼形式表達。

1: 2的32位原碼為 0000 0000 0000 0000 0000 0000 0000 0010

2: 按位取反後為 1111 1111 1111 1111 1111 1111 1111 1101

由於最前面的數為1,符號位為1,即為負數,所以,以其正值的補碼形式表示為:(符號位不變,按位取反,末尾加1)

1000 0000 0000 0000 0000 0000 0000 0011

所以輸出為-3


左移右移程式碼範例

<?php$m = 12;     // 12=00001100$n = 3;     // 3=00000011$mn= $m << $n;echo $mn ."<br/>";$mn= $m >> $n;echo $mn ; ?>

運行結果:

樣本解釋:

$m<<$n:將 $m 中的位向左移動 $n 次(每一次移動都表示“乘以 2”,即“乘以 2$b ”)。
0000 1100 ← $m
<< 0110 0000 左移3個,空出的位置用 0 補充

0110 0000 = 96


$m>>$n:將 $m中的位向右移動 $n 次(每一次移動都表示“除以 2”,即“乘以 2 -$b ”)。
0000 1100 ← $m
<< 0000 0001 右移3個,多出的位置截掉

0000 0001 = 1


上面的內容就是PHP運算中的“位元運算符”的詳細內容,如果有什麼不懂的,可以關注我們topic.alibabacloud.com,在上面進行留言,我們將第一時間給你解答或者在topic.alibabacloud.com搜尋,也許能找到你想的。下一節,我們將詳細介紹PHP運算中的邏輯運算子。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.