C++の<<と>>の違いは何ですか

下次还敢
リリース: 2024-04-26 17:56:48
オリジナル
375 人が閲覧しました

C の << と >> は、それぞれ整数のビット単位の左シフトとビット単位の右シフトに使用されるビット シフト演算子です。左シフト演算子 (

C++の<<と>>の違いは何ですか

##C の << と >> の違い (左)シフト演算子) と >> (右シフト演算子) は、符号付き整数または符号なし整数をビット単位でシフトするために使用されるビット演算子です。それらの主な違いは移動方向です。

左シフト演算子 (<<)

左シフト演算子 << 整数のバイナリ表現を指定された桁数だけ左にシフトします。 。整数が符号付き整数の場合、空いたビットは符号ビット (正の数の場合は 0、負の数の場合は 1) で埋められます。整数が符号なし整数の場合、空いたビットは 0 で埋められます。

右シフト演算子 (>>)

右シフト演算子 >> 整数のバイナリ表現を指定された桁数だけ右にシフトします。 。符号付き整数の場合、符号ビットが空いたビットにコピーされるため、数値の符号が保持されます。符号なし整数の場合、空いたビットは 0 で埋められます。

使用法

左シフト演算子は、バイナリ表現で 0 を加算するのと同じであるため、通常、整数を 2 のべき乗で乗算するために使用されます。

int x = 5; // 二进制:101
x << 2; // 二进制:10100 (等效于 x * 2^2)
ログイン後にコピー
右シフト演算子は、バイナリ表現で 0 を削除するのと同じであるため、整数を 2 の累乗で除算するためによく使用されます。
int y = 20; // 二进制:10100
y >> 2; // 二进制:101 (等效于 y / 2^2)
ログイン後にコピー

次の表では、<< と >> を使用して符号付き整数と符号なし整数に対して置換演算を実行する効果を比較しています。

操作

符号付き整数符号なし整数 5 << 220 1-22147483646符号なし整数の場合、右シフト演算の結果は常に正の数になります。 符号付き整数の場合、右シフト演算の結果は符号ビットによって異なります。
-5 <<2-20-20
##5 >>21
-5 >>2
注:

以上がC++の<<と>>の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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