ビットマスク(bit mask)は、ITやプログラミング分野で頻繁に登場する重要な技術概念です。
主にビット単位の論理演算を通じて、データ内の特定のビットを選択・変更・判定するために使用されます。
このテクニックは、フラグの制御、メモリ効率の改善、低レベルプログラミングにおいて不可欠であり、C言語をはじめとする多くのプログラミング言語で広く活用されています。
この記事では、ビットマスクの仕組み、基本操作、具体的な使用例、そして実用的な活用シーンについて詳しく解説します。
ビットマスクとは?
ビット単位での制御を可能にするツール
ビットマスクとは、ビット演算(論理演算)を用いて特定のビットだけを操作対象にするためのビット列(パターン)です。
このマスクを使うことで、対象データの一部ビットの読み取り・設定・クリア(消去)などを柔軟に行うことが可能になります。
よく使われるビット演算子
ビットマスクの使い方
特定ビットの状態を確認する(AND)
特定のビットを確認したい場合、その位置を「1」、それ以外を「0」にしたビットマスクを作成し、対象のビット列とAND演算(&)を行います。
例:8ビット値から左から3番目のビットを確認
この演算により、対象ビットが「1」の場合は同じビット位置が「1」として残り、それ以外はすべて「0」となります。
特定ビットを「1」に設定する(OR)
あるビットを必ず「1」にしたい場合、該当位置を「1」に設定したビットマスクを用意してOR演算(|)を行います。
この操作により、マスク中の「1」の位置は常に「1」になり、それ以外のビットは元の値を保持します。
特定ビットを「0」に設定する(AND + NOT)
特定のビットを「0」にするには、まずそのビットのみ「0」、その他を「1」に設定したマスクを作成し、対象ビット列とAND演算を行います。
ビットマスクの応用例
複数フラグの一括管理
フラグを1ビット単位で表現すれば、複数の状態を1つの整数型変数で管理可能になります。
例:システムステータス管理(8ビット)
Visited 11 times, 1 visit(s) today