ホームページ >バックエンド開発 >PHPの問題 >PHPの右シフトとは何ですか?使い方?

PHPの右シフトとは何ですか?使い方?

PHPz
PHPzオリジナル
2023-03-21 16:32:241601ブラウズ

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

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

コンピューター プログラミングでは、右シフトとは、数値を指定された桁数だけ右に移動し、左側の空いた部分を 0 で埋めることを意味します。たとえば、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: 正方形と立方体をすばやく計算する

# 右にシフトすると、正方形と立方体をすばやく計算することもできます。数値を 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 サイトの他の関連記事を参照してください。

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