首頁 >後端開發 >php教程 >詳解PHP位元運算符

詳解PHP位元運算符

藏色散人
藏色散人轉載
2021-01-05 16:12:415068瀏覽

推薦:《PHP影片教學

位元運算子

位元運算子是指對二進位位元從低位到高位對齊後進行運算。

##不同為1 ,相同為0~按位元取反29c42a7491108fa16bed7b0d73a2f95f>
符號 作用 範例 個人理解
& 位元與 $m & $n 全1為1,否則為0
| 以位元或 $m | $n 全0為0,有1為1
^ 以位異或 #$m | $n
~$m
#$m >> $n

&運算子

<?php
$m = 1;
$n = 2;
$mn = $m & $n;
echo $mn;

運行結果為0

解釋:將1,2分別轉換為二進位為

00000001

00000010

在位元與的過程中,按位比較,全1為1,比較結果為00000000,所以輸出0

|運算子

<?php
$m = 1;
$n = 2;
$mn = $m | $n;
echo $mn;

運行結果為3,同樣,轉換成如上的二進位

00000001

00000010

在位元或的過程中,有1為1,全0為0,則結果為00000011,所以輸出3

^運算符

<?php
$m = 1;
$n = 2;
$mn = $m ^ $n;
echo $mn;

運行結果為3,同樣,轉換成如上的二進位

00000001

00000010

在位元亦或的過程中,不同為1,相同為0,所以結果為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

a46cea8de6f5810c2cec1d593d2855df>運算子

右移一位,和<<運算符,類似,只不過這個是右移,此處不在做過多解釋。 ######更多程式相關知識,請造訪:###程式設計教學###! ! ###

以上是詳解PHP位元運算符的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除