IRONSOFTWAREHOME

C#でフラグを削除する

C# のバイナリ: 10 分以内でフラグを削除する

Tim Corey

5 分 22 秒

C#でバイナリ操作を行うことは、時に圧倒されるように感じるかもしれませんが、フラグを効率的に操作する方法を理解することは、開発者にとって不可欠なスキルです。 この記事では、ティム・コーリー(Tim Corey)氏のビデオ"Binary in C#"で説明されているように、C#でフラグを削除するプロセスを探ります:10分以内にフラグを削除する"。 Timは、ビット演算を使用してフラグシステムからパーミッションを削除する方法を明確に説明します。 それでは、彼の説明を順を追って見ていきましょう。

フラグの削除の紹介

ティムは、C#のバイナリ演算を理解するシリーズの続きからビデオを始めます。 この12回目のレッスンでは、10分以内に一連の権限からフラグを削除する方法に焦点を当てます。 彼は、列挙を使用してパーミッションが割り当てられた前回のレッスンのコードを保持しています。 このセッションの目標は、割り当てられたセットから特定の権限を削除する方法を示すことです。

削除するフラグを特定する

デモの冒頭でTimは、あるユーザーに割り当てられた権限セットから、特に"Redis"を削除する必要があるシナリオについて説明します。 パーミッションはバイナリ形式で保存され、各ビットが異なるパーミッションを表すと説明しています。

課題は、セット内の他のパーミッションに影響を与えることなく"Redis"パーミッションを削除することです。 ティムは、3番目のビット(ゼロベースのインデックスを想定)が"Redis"を表し、それをクリアする必要があることを指摘する。

フラグを削除するためにビット演算を使用する

ティムは、ビット単位のマスクとNOT(~)演算子について視聴者に注意を促します。 フラグを除去するために、彼は次のアプローチを適用します:

// Remove the Redis permission from TimPermissions
TimPermissions = TimPermissions & ~SystemPermissions.Redis;

この作業の各パートについて説明しています:

  • SystemPermissions.Redis は'Redis'のフラグ値を提供します。

  • ~SystemPermissions.Redis はビットを反転させ、'Redis'ビットを1から0に、他のすべてを1にします。

  • TimPermissions & ~SystemPermissions.RedisTimPermissionsと反転したマスクとの間でビット単位のAND操作を行い、'Redis'ビットをクリアしながら他のすべてを保持します。

この方法は、意図せずに残りのフラグを修正することなく、ターゲットとなる許可を確実に削除します。

更新されたパーミッションの印刷

ビット単位の操作を適用した後、TimはTimPermissionsの更新された値を出力します。 彼は、"Redis"を表す3番目のビットがうまく削除されたことを確認している。 これは、アプローチの正しさを示しています。

フラグを取り除くより短い方法

Timは次に、操作の短縮版を紹介します:

// Shorthand operation to remove the Redis permission
TimPermissions &= ~SystemPermissions.Redis;

彼は、&=を使用することは同じロジックを表現するためのより簡潔な方法であり、同じ効果を維持しながらコードをよりクリーンにすることを説明します。 長短両方のバージョンを理解することは、C#でビット演算がどのように機能するかを理解するのに役立つと強調しています。

ビット演算を理解することの重要性

ティムは、2進数やビット演算を扱うことは難しいことだと認め、"そう、2進数を扱うと脳が焼かれることがある。彼は、これらの概念をマスターするには時間と練習が必要だと視聴者を安心させる。

彼のアドバイスは、各ビット単位の演算子 - AND (&)、OR ()|—``), and NOT (~) - を複雑な操作に組み合わせる前に個別に学ぶことです。 これらのツールが個別にどのように機能するかを理解することで、一緒に使用したときにどのように相互作用するかを開発者が把握できるようになります。

このテクニックが重要な理由

Timは、ビット演算を使ったフラグの削除は、パーミッション処理だけに限ったことではないことを強調しています。 彼は、エンティティがフラグとして保存された複数の状態を持つことができるゲーム開発シナリオの例を提供しています。 このテクニックを使うことで、開発者は不要な計算をすることなく、状態のオンとオフを効率的に切り替えることができます。

また、ビット演算を使用することで、複数の状態を管理する他の方法と比べて高いパフォーマンスを発揮することも強調しています。 これらの操作はバイナリ・レベルで実行されるため、ブーリアン・プロパティを個別に管理するような代替アプローチよりも高速で、メモリ効率に優れています。

最終的な考え

ティムは最後に、これらの操作が自然にできるようになるまで練習することの重要性を強調しています。 単に構文を暗記するだけでなく、なぜこのようなテクニックが有効なのかを深く理解する努力をするよう、視聴者に呼びかけている。

"ルールから始まり、理解へと変わる"- ティム・コーリー

これらの概念に継続的に取り組むことで、開発者はC#でのバイナリフラグの操作に自信を持つようになり、効率的で保守性の高いコードを書くことに習熟できるようになります。

結論

ティム・コーリーの明確で構造化された説明を通して、ビット演算を使用してC#でフラグを削除する方法を学びました。 各ステップを分解し、操作のロングバージョンとショートバージョンの両方を実演し、練習の重要性を強化するという彼のアプローチは、バイナリ操作を扱う開発者にとって貴重なレッスンとなる。

C# でのバイナリ操作についてもっと学びたい方は、このトピックに関するティムの full series をぜひチェックして、より深い洞察を得てください!

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日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。