Skip to the content.

最終更新日:2026年7月2日

まず結論

ビットマスクとは、操作したいビットの位置を指定するためのビット列です。

基本情報技術者試験では、ビットマスクは どのビットを残すか、1にするか、反転するかを指定するもの と考えると分かりやすいです。

使う演算によって、意味が変わります。

操作 使う演算 マスクの1の意味
特定のビットを取り出す AND 残す場所
特定のビットを1にする OR 1にする場所
特定のビットを反転する XOR 反転する場所

つまり、マスクは単体で意味が決まるのではなく、AND、OR、XORのどれと組み合わせるか で役割が決まります。

直感的な説明

ビットマスクは、紙にかぶせる 型紙 のようなものです。

見たい場所だけ穴を開けておくと、そこだけ見えます。

例えば、8ビットの下位4ビットだけを取り出したいとします。

元のビット列:1011 0110
マスク    :0000 1111

このマスクは、下位4ビットだけが 1 になっています。

ANDを取ると、1 の場所だけ元の値が残ります。

  1011 0110
AND 0000 1111
=   0000 0110

このように、どのビットを操作対象にするかを指定するビット列が、ビットマスクです。

定義・仕組み

ビットマスクは、ビット演算で特定のビット位置だけを操作するために使います。

代表的な使い方は、次の3つです。

目的 考え方
取り出す 値 AND マスク マスクが1の場所だけ残す
1にする 値 OR マスク マスクが1の場所を1にする
反転する 値 XOR マスク マスクが1の場所を反転する

例えば、元の値を 1010 0101、マスクを 0000 1111 とします。

ANDで取り出す

  1010 0101
AND 0000 1111
=   0000 0101

下位4ビットだけが残ります。

ORで1にする

  1010 0101
OR  0000 1111
=   1010 1111

下位4ビットがすべて1になります。

XORで反転する

  1010 0101
XOR 0000 1111
=   1010 1010

下位4ビットだけが反転します。

このテーマは、基本情報技術者試験の「基礎理論」や「情報に関する理論」と関係する内容です。公式の出題範囲やシラバスは、IPA:基本情報技術者試験 から確認できます。

科目Aでどう出る?

科目Aでは、ビットマスクを使って、特定のビットを残す、1にする、反転する問題が出題されやすいです。

選択肢を切るときは、まず問題文の目的を読みます。

問題文の目的 判断
下位4ビットを残したい 0F と AND
上位4ビットを残したい F0 と AND
特定のビットを1にしたい OR
特定のビットを反転したい XOR
特定のビットを0にしたい 0を含むマスクとAND

例えば、0F は2進数で次のように表せます。

0F = 0000 1111

このため、0F は下位4ビットを指定するマスクとして使えます。

値 AND 0F
→ 下位4ビットを取り出す

逆に、F0 は上位4ビットを指定します。

F0 = 1111 0000

値 AND F0
→ 上位4ビットを取り出す

科目Bでどう使う?

科目Bでは、プログラムのフラグ処理を読むときに、ビットマスクの考え方が役立ちます。

例えば、ある状態を1ビットずつ管理している場合があります。

0000 0001:読取権限
0000 0010:書込権限
0000 0100:実行権限

このようなとき、特定の権限があるか確認するには AND を使います。

権限値 AND 0000 0010

結果が0でなければ、書込権限のビットが立っていると判断できます。

また、権限を追加したいときは OR を使います。

権限値 OR 0000 0010

権限を切り替えたいときは XOR を使うことがあります。

権限値 XOR 0000 0010

科目Bでは、ビット列そのものよりも、1が立っている位置が何を表すか を読むのが大切です。

よくある誤解・混同

ビットマスクでよくある誤解は、マスクの1はいつも同じ意味だと思ってしまうこと です。

誤解 正しい理解
マスクの1は常に「残す」 ANDでは残す、ORでは1にする、XORでは反転する
0F は上位4ビットを指定する 0F は下位4ビットを指定する
F0 は下位4ビットを指定する F0 は上位4ビットを指定する
ORでも特定ビットを取り出せる 取り出すときはANDを使う
XORは1にする演算 XORは指定ビットを反転する演算

特に、次の対応を覚えておくと強いです。

AND:1の場所だけ残す
OR :1の場所を1にする
XOR:1の場所を反転する

同じ 0000 1111 というマスクでも、AND、OR、XORで結果が変わります。

だから、問題文では どの演算を使うか何をしたいか をセットで読むのが大切です。

まとめ(試験直前用)

  • ビットマスクは、操作したいビット位置を指定するビット列
  • ANDでは、マスクが1の場所だけ残す
  • ORでは、マスクが1の場所を1にする
  • XORでは、マスクが1の場所を反転する
  • 0F = 0000 1111 なので、下位4ビットを指定する
  • F0 = 1111 0000 なので、上位4ビットを指定する
  • マスクの意味は、組み合わせる演算で変わる

© 2024-2026 stemtazoo. All rights reserved.