ホームページ > バックエンド開発 > PHPの問題 > phpの右シフトとはどういう意味ですか?

phpの右シフトとはどういう意味ですか?

zbt
リリース: 2023-06-13 10:34:44
オリジナル
1595 人が閲覧しました

php 右シフトとは、数値を指定された桁数だけ右に移動し、左側の空いた部分をゼロで埋めることを意味します。右シフト演算を適切に使用することで、コンピュータ プログラムを最適化し、より高速かつ効率的にすることができます。右シフトは、2 の累乗による除算、平方や立方体の迅速な計算など、さまざまなシナリオで使用できます。

phpの右シフトとはどういう意味ですか?

このチュートリアルの動作環境: Windows10 システム、php8.1.3 バージョン、DELL G3 コンピューター。

PHP は、Web の構築に使用できる人気のあるサーバー側スクリプト言語です。 アプリケーションと動的 Web サイト。 PHP における右シフトは、指定されたビット数だけ数値を右にシフトして新しい数値を得ることができる基本的なビット演算です。ただし、この操作は状況によって意味や用途が異なります。この記事では、PHP における右シフトのさまざまな使用方法と、コーディングでの右シフトの使用方法について詳しく説明します。

1. 右シフトとは何ですか?

コンピューター プログラミングでは、右シフトとは、指定された桁数だけ数値を右に移動し、ゼロを使用して数値を埋めることを指します。左側の空きスペース。たとえば、2 進数 1010 を右に 2 ビットシフトする場合、結果は次のようになります。 0010、最初の 2 ビットにはゼロが埋め込まれます。 PHP では、右シフト演算は >> 演算子で実装でき、その構文は次のとおりです:

$result = $num >> $shift;
ログイン後にコピー

ここで、$num は移動する数値、$shift は移動する桁数です。 , $result はシフト後の結果です。たとえば、数字の 10 を右に 2 移動したい場合、

$num = 10;
$shift = 2;
$result = $num >> $shift;
echo $result; // 输出结果为 2
ログイン後にコピー

2. 1 を使用: 2 の累乗で除算

プログラミングにおける右シフトの一般的な使用法は、除算です。 2の累乗による数値。たとえば、数値を 4 で割る場合、4 は 2 に等しいため、数値を 2 つ右に移動できます。 力の。さらに、ほとんどのコンピュータでは右シフトの方が除算演算よりもはるかに高速であるため、右シフトを使用してコンピュータ プログラムの除算演算を最適化することができます。

たとえば、数値の平方根を計算するとします。次のコードを使用できます。

$num = 16;
$sqrt = sqrt($num); // 计算平方根
echo $sqrt; // 输出结果为 4
ログイン後にコピー

ただし、この方法では数値の平方根を計算する必要があり、計算量が非常に多くなる可能性があります。代わりに、次のコードを使用できます。

$num = 16;
$result = $num >> 1; // 将数字除以 2,等价于 $num / 2
$result = $result >> 1; // 将数字除以 4,等价于 $num / 4
echo $result; // 输出结果为 4
ログイン後にコピー

上記のコードに示すように、まず $num を 1 位置だけ右に移動します。これは、2 で割ることと同じであり、次に右に移動します。これは、4 で割ることと同じです。この方法は sqrt() を使用するよりも優れています。 関数は乗算演算子や除算演算子を使用するよりもはるかに高速であり、多くの場合高速です。

3. 使い方 2: 正方形と立方体をすばやく計算する

# 右にシフトすると、正方形と立方体をすばやく計算することもできます。数値を二乗したい場合は、数値を 1 つ左にシフトできます。これは、数値を乗算することと同じです。 2 そして、結果をそれ自体に追加します。同様に、数値を 3 乗する場合は、数値を 2 桁左にシフトできます。これは、数値を 4 で乗算し、元の数値の 2 乗を結果に加算することと同じです。以下にコード例を示します。

$num = 5;
$square = ($num << 1) + $num; // 平方,等价于 $num * $num
$cube = ($num << 2) + ($num << 1) + $num; // 立方,等价于 $num * $num * 
$num
echo $square; // 输出结果为 25
echo $cube; // 输出结果为 125
ログイン後にコピー

右シフト演算は左シフト演算の逆演算であるため、右シフトを使用すると、これらの計算を大幅に簡素化できます。たとえば、数値の 2 乗を計算する場合は、次のコードを使用できます:

$num = 5;
$square = ($num >> 1)
$num * 4 - ($num >> 1)
($num >> 1);
echo $square; // 输出结果为 25
ログイン後にコピー

where $num >> 1 は $num を 2 で割ることと同じで、$num * 4は同等です。価格は、$num を左に 2 桁移動することです ($num >> 1) * ($num >> 1) つまり、$num の 2 乗を求めます。

4. 概要

PHP では、右シフトは 2 で割るなど、さまざまなシナリオで使用できる基本的なビット演算です。 のべき乗、平方や立方体などをすばやく計算します。右シフト操作を適切に使用すると、コンピュータ プログラムを最適化し、より高速かつ効率的にプログラムを実行できます。この記事が PHP をより深く理解するのに役立つことを願っています でビット シフト操作を実行し、エンコードで使用します。

以上がphpの右シフトとはどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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