IRONSOFTWAREHOME

C# ビット演算子:ビットシフトを理解する

C# のバイナリ: ビットシフト左とビットシフト右を使った 10 分以内のビットシフト。

Tim Corey

9 分 33 秒

ビット演算子は、整数の個々のビットを操作できるC#の重要な部分です。 これらの演算子は、低レベルのプログラミング、パフォーマンスの最適化、フラグの操作に非常に役立ちます。 この記事では、Tim Corey 氏の動画 Binary in C#:ビット単位の左シフトと右シフトを使ったビット シフトを 10 分以内に

ビット シフト入門

Timは、C#のバイナリを理解するシリーズの続きから始めます。 このレッスンはシリーズの4番目で、ビットシフトに焦点を当てています。 目標は、ビットを左右にシフトすることが数値にどのような影響を与えるか、また、プログラミングでこのテクニックをどのように使用できるかを理解することです。

Timは、整数を2進数表現に変換し、8ビット形式で表示されることを保証するConvertToBinaryというメソッドを作成することで例を設定します。 これにより、ビットシフトの仕組みがイメージしやすくなります。

ビット単位の左シフトを理解する

Timは、左シフト演算子(<<)を使用してビットシフト左の概念を紹介します。 彼は、2^n倍することと同等であると説明します。

例えば、彼は数字の9から始めます:

00001001

彼がそれを3つの場所(9 << 3)左にシフトすると、次のようになります:

01001000

この新しい2進値は72を表します。Timは、左にシフトすることで、それが実質的に3つのゼロを右側に追加し、数を3回2倍にしたことを強調します(つまり、9 * 2^3 = 72)。

実際の使用例: 個々のビットを設定する

ティムは、既存の数字をシフトさせることも有効だが、より一般的なのは数字の1を特定の位置にシフトさせることだと説明する。 例えば:

1 << 3

これにより、ビットが4番目の位置に移動し、次のようになります:

00001000

この2進数は8に相当する。このテクニックは、ビットマスクやフラグを扱うときに特に役立つとティムは指摘する。

ビット単位の右シフトを理解する

次に、Timは右シフト演算子(>>)を使用してビットシフト右を説明します。 右に2^nで割り、余りを破棄することと同じです。

前の例を使用して、2進数で9(9 >> 2)右にシフトすると、次のようになります:

00000010

これは2に等しい。ティムは、右シフトは本質的に右からビットを削除し、数値の値を減少させることを説明します。

なぜビット シフトが便利なのか

Timは、ビットシフトがプログラミングにおいて価値がある理由について説明します。 主な使用例には、次のようなものがあります:

  • 計算の最適化:ビットシフトは、2の累乗による乗算と除算を置き換えることができ、演算を高速化します。

  • 特定のビットの設定とクリア: フラグベースの列挙では、ビットシフトによってブール値の効率的な格納と操作が可能になります。

  • ハードウェアでの作業:低レベルのハードウェア操作の多くは、ビット単位の操作に依存しています。

結論

ティムは最後に、ビット・シフトはしばしば他の操作と組み合わせて使用されることを強調している。 ビットの効果的なシフト方法を理解することは、特にフラグ、バイナリ計算、パフォーマンスが重要なアプリケーションを含むシナリオにおいて、より効率的で最適化されたコードにつながります。

ティム・コーリーの説明に従って、ビット単位の左右シフトがどのように機能するのか、数値にどのように影響するのか、一般的にどこで使用されるのかを探りました。 視覚的で詳細なウォークスルーが必要な場合は、ティムのビデオが C# でのビット演算をマスターするための優れたリソースです。

Earn More by Sharing What You Love

Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Let's Stay in Touch!

Join our newsletter, you’ll get exclusive access on article updates. We value your privacy

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

OR
bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。