ホームページ >バックエンド開発 >C++ >C言語での<<と>>の使用法

C言語での<<と>>の使用法

下次还敢
下次还敢オリジナル
2024-04-27 23:12:501090ブラウズ

C 言語では、<< および >> は、整数変数に対してビット演算を実行するために使用されるビット シフト演算子です。 <<: バイナリでオペランドを表す左シフト演算子です。左側の指定されたビット数 (2 の累乗に相当)。 >>: 右シフト演算子。オペランドのバイナリ表現を指定された桁数だけ右に移動します。これは 2 のべき乗による除算と同じです。符号付き右シフト (>>) は符号ビットを保持し、符号なし右シフト (>>>) は空のビットをゼロで埋めます。

C言語での<<と>>の使用法

##C 言語での << および >> 演算子の使用法

C 言語では、< < と >> は、整数変数に対して置換演算を実行するために使用される演算子です。

左シフト演算子 (<<)

<< 演算子は、オペランドのバイナリ表現を指定された桁数だけ左にシフトします。は 2 と等価であり、ベースへの電力演算です。例:

int x = 5; // 二进制表示:00000000 00000101
int y = x << 2; // y 的二进制表示:00000000 00010100
// 等价于:y = x * 2^2 = 5 * 4 = 20

右シフト演算子 (>>)

演算子は、オペランドのバイナリ表現を指定された数だけ右にシフトします。桁数。これは、基数 2 の除算の場合と同等です。また、符号付き右シフト (>>) と符号なし右シフト (>>>) に分けることもできます。
符号付き右シフト (>>):
    は、オペランドの符号ビットを保持し、左の符号ビットを空いたビットに埋めます。例:
  • int x = -5; // 二进制表示:11111111 11111011
    int y = x >> 2; // y 的二进制表示:11111111 11111100
    // 等价于:y = x / 2^2 = -5 / 4 = -2
符号なし右シフト (>>>):
    は、空いたビットを 0 で埋め、符号ビットは保持されません。 。例:
  • int x = 5; // 二进制表示:00000000 00000101
    int y = x >>> 2; // y 的二进制表示:00000000 00000001
    // 等价于:y = x / 2^2 = 5 / 4 = 1
  • アプリケーション シナリオ

ビット シフト演算子には、次のような幅広いアプリケーション シナリオがあります。

ビット フィールド操作

    データ圧縮
  • 暗号化と復号化
  • パフォーマンスの最適化

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

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