C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C /C++の左シフトおよび右シフト演算子


左シフト

左シフト演算子では、左オペランドの値は、右オペランドで指定されたビット数だけ左に移動します。

これはC言語の左シフト演算子の例です

#include <stdio.h>

int main() {
   int y = 28; // 11100
   int i = 0;

   for(i;i<=3;++i)
   printf("Left shift by %d: %d\n", i, y<<i);

   return 0;
}

出力

これが出力です

Left shift by 0: 28
Left shift by 1: 56
Left shift by 2: 112
Left shift by 3: 224

右シフト

右シフト演算子では、左オペランドの値は、右オペランドで指定されたビット数だけ右に移動します。

これがC言語の右シフト演算子の例です

#include <stdio.h>

int main() {
   int x = 10; // 1010
   int i = 0;

   for(i;i<2;i++)
   printf("Right shift by %d: %d\n", i, x>>i);

   return 0;
}

出力

これが出力です

Right shift by 0: 10
Right shift by 1: 5

  1. C#ビット単位およびビットシフト演算子

    ビット演算子はビットを処理し、ビットごとの演算を実行します。 C#でサポートされているビット演算子を次の表に示します。変数Aが60を保持し、変数Bが13を保持すると仮定します- 演算子 説明 例 & ビットごとのAND演算子は、両方のオペランドにビットが存在する場合、結果にビットをコピーします。 (A&B)=12、つまり0000 1100 | ビットごとのOR演算子は、いずれかのオペランドに存在する場合、ビットをコピーします。 (A | B)=61、つまり0011 1101 ^ ビットごとのXOR演算子は、ビットが両方ではなく

  2. C#のビット単位の右シフト演算子

    ビット演算子はビットを処理し、ビットごとの演算を実行します。ビット単位の右シフト演算子では、左のオペランドの値は、右のオペランドで指定されたビット数だけ右に移動します。 以下のコードでは、値-があります。 60 i.e. 0011 1100 右シフト%マイナス; c = a >> 2; 2回右シフトすると15に変換されます- 15 i.e. 0000 1111 例 次のコードを実行して、C#でビット単位の右シフト演算子を実装してみてください- using System; using System.Collections.Generic; using System.Text;