PHP の基本的な構(gòu)文ビット操作
數(shù)年間 PHP を書いてきた人は、ビット演算子を一度も使用したことがないと言うことに興味を持ちます。なので、ここでバイナリを見てめまいを感じたら、T¥M¥Dに行ってください。
ビット演算子は基本的には使用せず、この知識も理解レベルに設(shè)定しています。ビット演算子に関する知識を?qū)Wびたくない場合は、學(xué)ぶ必要はありません。 將來ビット演算を使用するときにもう一度學(xué)習(xí)しましょう。
知識學(xué)習(xí)レベル[理解レベル、感想だけ]。
例 | 説明 | 詳細(xì) |
---|---|---|
$a & $b | And (bitwise AND) | は、 $a と $b のビットを両方とも 1 から 1 に設(shè)定します。 |
$a | $b | Or (ビット単位の OR) | は、$a と $b の任意のビットを 1 対 1 に設(shè)定します。 |
$a ^ $b | Xor (ビット単位の XOR) | は、$a と $b のビットのうち 1 で、もう一方のビットを 0 から 1 に設(shè)定します。 |
~ $a | Not (ビットごとの否定) | $a の 0 であるビットを 1 に設(shè)定し、その逆も同様です。 |
$a << $b | Shift Left | $a のビットを左に $b 回移動します (各移動は「2 を掛ける」ことを意味します)。 |
$a >> $b | 右シフト | $a のビットを右に $b 回移動します (各移動は「2 で割る」ことを意味します)。 |
上記の記號はすべて二項(xiàng)演算です。
バイナリーに遭遇することはほとんどありませんが、遭遇した場合はバイナリーの知識を補(bǔ)うことができます。
<?php //$x二進(jìn)制值為: $x = 5; //$y二進(jìn)制值為: $y = 8; //結(jié)果為13 echo $x ^ $y; ?>
変數(shù) | バイナリ値 |
---|---|
$x | 0101 |
$y | 1000 |
異なる結(jié)果 | 1101 |
XOR 説明: x と y の 2 つの値が同じでない場合、XOR の結(jié)果は 1 になります。 x と y の値が同じ場合、XOR の結(jié)果は 0 になります。
1101 は $x と $y の XOR の結(jié)果であると推測できます。2 進(jìn)數(shù)から 10 進(jìn)數(shù)への変換ツールを使用して 1101 を変換した結(jié)果は 13 です。
10 進(jìn)數(shù)変換の二次的なオンラインのスクリーンショット: