ホームページ > バックエンド開発 > PHPチュートリアル > PHPビット演算子の詳しい説明

PHPビット演算子の詳しい説明

藏色散人
リリース: 2023-04-09 17:30:01
転載
5078 人が閲覧しました

推奨: "PHP ビデオ チュートリアル "

ビット演算子

ビット演算子は、バイナリ ビットを下位から参照します。 bit 上位ビットに合わせて演算を実行します。

#シンボル機能例個人的な理解#&$m & $n|$m | $n^$m | $n~~$m#<<$m << $n>>$m >> $n&operator
ビット単位 AND すべての 1 は 1、それ以外の場合は 0
ビット単位 OR すべての 0 は 0、1 は 1
ビット単位 XOR は 1 とは異なり、 と同じです0
ビットごとの反転
左にシフト
右にシフト

<?php
$m = 1;
$n = 2;
$mn = $m & $n;
echo $mn;
ログイン後にコピー
演算結果は 0

説明: 1 と 2 をそれぞれ次のようにバイナリに変換します。

00000001

00000010

ビット単位の AND の処理では、すべての 1 が 1、比較結果は 00000000 となるため、出力は 0

|Operator

<?php
$m = 1;
$n = 2;
$mn = $m | $n;
echo $mn;
ログイン後にコピー
演算結果は 3 です。同様に、上記のように 2 進数 ##00000001# に変換されます

##00000010

# #ビットごとの OR のプロセスで、1 が 1 で、すべての 0 が 0 の場合、結果は 00000011 となるため、出力は 3

^ 演算子

<?php
$m = 1;
$n = 2;
$mn = $m ^ $n;
echo $mn;
ログイン後にコピー

The実行結果は 3 です。同様に、上記の 2 進数に変換されます。

0000000100000010

ビットごとの OR の処理で、差が 1、同じが0 なので、結果は 00000011 となり、3 が出力されます。

~Operator

<?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 = 3;
$m1=$m << 1;
echo $m1;
ログイン後にコピー
## となります。 #演算の結果は 6 です。

左シフト演算の本質は、対応するデータのバイナリ値を 1 ビットずつ左にシフトし、空いた位置を 0 で埋めることです。 最上位ビットオーバーフローして破棄されます。

3 の 32 ビットの元のコードは、0000 0000 0000 0000 0000 0000 0000 0011

左に 1 桁シフトします: 0000 0000 0000 0000 0000 0000 0000 0110

# # なので 6 です

マニュアルの説明によると、ビット単位の演算は 1 ビット左にシフトすることで確認できることがわかります。これは 2 の乗算です。変位演算は乗算より演算速度がはるかに速いためです。したがって、データ乗算演算を処理する場合、ディスプレイスメント演算を使用すると高速化できます。

ヒント: プログラムの実行効率を向上させるために、2 のすべての乗算演算を変位演算に変換します。

>> 演算子

<< 演算子と同様に、右に 1 位置シフトしますが、これは右シフトではありません。ここで完了しました。説明が多すぎます。


プログラミング関連の知識について詳しくは、

プログラミング教育

をご覧ください。 !

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

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート