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!

Tim Corey
7 分 56 秒
バイナリ演算は、特に低レベルの最適化やビット演算を扱う場合、プログラミングにおける強力なツールです。 バイナリ操作の基本的なテクニックの1つはビットマスキングで、これによって値内の個々のビットを効率的に操作できるようになります。 この記事では、Tim Corey 氏の動画 Binary in C#:10 分以内でビットをマスクしてクリアするというビデオに沿って、C# でのビット マスクを深く掘り下げていきます。
Timは、ビットマスキングの概念を分解し、マスクの設定方法、NOT演算子を使用したビットの削除方法、ビット演算がパフォーマンスにとって重要である理由を示します。 ビデオ内の重要なポイントを参照しながら、これらのコンセプトを段階的に探っていきましょう。
ティムは、ビット操作のトピックを紹介することからビデオを始めます。 彼は、このレッスンはC#のバイナリを理解するためのより広いシリーズの一部であると説明しています。 このビデオの焦点は、マスクを使用したビットのクリアであり、パーミッション処理、フラグ管理、パフォーマンス最適化などのさまざまなアプリケーションで使用できる基本的なテクニックです。
また、コンピュータは基本的にバイナリで動作するため、バイナリ操作を理解することが非常に重要であることを視聴者に伝えています。 ビットを直接操作することで、高度に最適化された効率的なコードを作成することができます。
Timは、マスクを設定する方法と、なぜそれが便利なのかを説明します。 マスクは、別の値から特定のビットを変更または抽出するのに役立つバイナリ値です。 これを実証するために、彼は与えられた数字から特定のビットを削除したい例を提供します。
彼はバイナリ値から始めます:
// Original binary value
0b1101 // (which is 13 in decimal)' Original binary value
&b1101 ' (which is 13 in decimal)そして彼は、特定のビット、たとえば3番目と1番目のビットを削除することを決定します。 これを達成するために、彼はどのビットを削除すべきかを示すマスクを作成します:
// Mask to specify bits to be cleared
0b0101 // (mask value)' Mask to specify bits to be cleared
&b0101 ' (mask value)Timは次に、このマスクを元の値に適用するには、マスクの否定との論理的なAND演算が必要であると説明します。 これは、他の部分をそのままに、指定された部分を効果的にクリアするものです。
指定されたビットを削除するために、ティムはNOT (~) 演算子を導入します。 マスクにNOTを適用するとすべてのビットが反転し、AND演算に使用できる補数が生成されることを説明する。
1.元の値:。
0b1101&b11012.マスク:。
0b0101&H53.ネガティブマスク(~mask):。
0b1010&b10104.実行および操作:。
// Perform AND operation to clear specific bits
0b1101 // Original value
AND
0b1010 // Negated mask
= 0b1000 // Result, which is 8 in decimal' Perform AND operation to clear specific bits
&b1101 ' Original value
And
&b1010 ' Negated mask
= &b1000 ' Result, which is 8 in decimalTimは、論理AND演算は、マスクによってマークされていないビットだけが変更されずに残り、指定されたビットが効果的にクリアされることを保証することを強調します。
もしこの概念が分かりにくいと感じたら、ティムは視聴者を安心させるために、まずルールを暗記し、練習を通して理解を深めても構わないと言う。彼は、このテクニックに慣れるために、さまざまな値やマスクを試してみることを勧めている。
このときティムは、AND(&)とNOT(~)の演算を完全に把握することの重要性を強調する。 多くの初心者は、これらの概念を読み飛ばしたり、理解していると思いがちだが、これらの操作をマスターしていないと、複雑なビット単位の操作がずっと難しくなると彼は警告している。
彼のアドバイスはシンプルだ:ANDとNOTを理解していると決めつけないでください。 実践してください。 さまざまな値やマスクを試せば試すほど、ビット演算を自信を持って扱えるようになります。
Timは、マスキングを含むビット演算がパフォーマンスが重要なアプリケーションで広く使用されている重要な理由を強調します。 コンピュータは最下層のバイナリでデータを処理するため、ビット演算は本質的に高速で効率的です。
このセクションの主なポイント
Timは、バイナリ操作を理解することは単なる学術的な練習ではなく、より最適化されたパフォーマンスの高いコードにつながる実践的なスキルであることを強調して、このセクションを締めくくります。
このビデオでは、ティム・コーリーが C# におけるビット・マスキングについてわかりやすく実践的に説明します。 私たちは学びました:
最初は難しいと感じる概念もあるかもしれませんが、心配しないでください。 ビット演算は、最初は難しいかもしれませんが、それをマスターすることで、より効率的で最適化されたコードを書く道が開けます。
バイナリ操作についてもっと深く知りたい方のために、ティムはこのトピックに関するビデオをもっと用意しています。 練習を続け、実験し続ければ、C#でのビット操作はすぐに自然に感じられるようになるでしょう。
この記事では、ティムのビデオでカバーされている主要な概念を構造的に分解することを目指しました。 より深く理解するには、ビデオ全編をご覧になることを強くお勧めします!
Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!
Join our newsletter, you’ll get exclusive access on article updates. We value your privacy