目次:
定義-ビットシフトとはどういう意味ですか?
ビットシフトとは、バイナリ値のすべてのビットに対して行われる操作で、決められた数だけ左または右に移動されます。 オペランドが全体ではなく一連のビットとして使用されている場合、ビットシフトが使用されます。 つまり、オペランドは値ではなく、何かを表す個々のビットとして扱われます。
ビットシフトはプログラミングでよく使用され、各プログラミング言語に少なくとも1つのバリエーションがあります。
ビットシフトは、ビット単位の演算としても知られています。
Techopediaはビットシフトを説明します
ビットシフトには、右シフトと左シフトの2つのバリエーションがあり、シフトが発生する場所の数によってさらに定義されます。 たとえば、オペランドを1つの値だけ左にシフトしたり、ビット「n」の値を右にシフトしたりします。
ビットシフトには、論理と算術の2種類があります。 論理ビットシフトは、符号なし整数を2のべき乗で乗算または除算するのに役立つ場合があります。 たとえば、値「0001」または「1」を左にシフトすると、「0010」または「2」になり、再び左にシフトすると「0100」または「4」になります。 右にシフトすると、シフトごとに値を2で割るという逆の効果があります。 ほとんどの場合、シフトは循環として扱われるため、左にシフトすると、左端の値が右端の値になり、逆も同様です。
論理左シフトと算術左シフトには同じ効果があるため、Javaには単一の左シフト演算子(<<)しかありません。 算術右シフトは(>>)で、論理シフトは(>>>)です。 CおよびC ++では、右シフト演算子(>>)は1つだけです。 実行されるシフトの種類は、シフトされる整数のタイプによって決まります。 符号付き整数は算術を使用してシフトされますが、論理ビットシフトは符号なし整数で使用されます。 マイクロコントローラとマイクロプロセッサは通常、個々のビットで表されるフラグに依存するため、ビットシフトはアセンブリプログラミングでも多く使用されます。 基本的に、ビットシフトが一般的に使用される演算子になるのは、アセンブリ言語のプログラミングで2進数システムが使用されるためです。
