ホームページ  >  記事  >  バックエンド開発  >  PHP演算子(4)「ビット演算子」例解説

PHP演算子(4)「ビット演算子」例解説

怪我咯
怪我咯オリジナル
2017-04-12 15:17:243379ブラウズ

PHP演算子の「php算術演算子」、「php文字列演算子」、「代入演算子」については既に説明してきましたが、今日はPHP演算子の「ビット演算子」について詳しく紹介していきます。

ビット演算子は PHP ではあまり使用されませんが、それでも非常に便利です。次のコンテンツでは、ビット演算子の使用法を示す例を示します。

ビット演算子は、バイナリビットを下位ビットから上位ビットに整列させた後の演算を指し、整数で指定されたビットの評価と演算を可能にします。

PHPの演算子は以下の表の通りです

^ビットごと $ m & lt;
演算子 説明
& ビットごとのAND $m & $n
| ビット単位の OR $m | &$n
& gt; & gt; 正しい動き $ 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;

?>

コードの実行結果:

PHP演算子(4)「ビット演算子」例解説

例の説明:

$m&$n: 両方とも 1 の場合は 1、それ以外の場合は です0.つまり、$a と $b のビットのうち、両方とも 1 であるビットを 1 に設定し、それ以外の場合は 0 に設定します。

00000001 ← $m
& 00000010 ← $b

比較結果は00000000なので出力は0


$m^$n: ビットごとのORの処理で差は1で、同様に 0 です。
00000001 ← $m

^ 00000010 ← $n

つまり、結果は00000011となり、3が出力されます。


$m|$n: ビット単位のORの処理で、1は1、0はすべて0、

00000001 ← $m

00000010 ← $n

結果は00000011なので、出力3

上の例は「ビットごとの OR」、「ビットごとの OR」、「ビットごとの XOR」について説明しています。次の 3 つの例を見てみましょう


ビットごとの NOT またはビットごとの否定の例 、コードは次のとおりです

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

走行結果

PHP演算子(4)「ビット演算子」例解説

現時点での走行結果は-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 ; 
?>

実行結果:

PHP演算子(4)「ビット演算子」例解説

例の説明:


$m: ビットを移動しますin $m を左に $n 回移動します (各移動は「2 を掛ける」、つまり「2$b を掛ける」を意味します)。 0000 1100 ← $m


0110 0000 = 96



$m>>$n
:$m を作るビットは $n 回右にシフトされます (各シフトは「2 で割る」、つまり「2 -$b を掛ける」ことを意味します)。 「ビット演算子」 詳細な内容が分からない場合は、PHP 中国語 Web サイトをフォローしてメッセージを残していただければ、できるだけ早く回答するか、PHP 中国語 Web サイトで検索していただければわかるかもしれません。欲しいものを見つけるために。次のセクションでは、PHP 操作における論理演算子について詳しく紹介します。

以上がPHP演算子(4)「ビット演算子」例解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。