ビット演算によるマスク処理とは?びっとえんざんによるますくしょり
ビット演算によるマスク処理とは、マスクと呼ぶビットパターンとの論理演算によって、特定のビット位置だけを取り出す・立てる・落とす操作。ANDはマスクが1の位置だけを残して他を0にし、ORは1の位置を立て、XORは1の位置を反転させる。応用情報では、フラグの管理、サブネットマスクによるネットワークアドレスの算出、アクセス権の判定といった計算の道具として問われる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
状態を1つずつ別の変数で持つと、数が増えるほど記憶領域も、まとめて比較する手間も増える。1語の中の各ビットに意味を割り当てれば、複数の真偽値を1つの整数として持ち運べ、複数条件の照合も1命令で済む。限られたメモリと命令数で制御を書く必要があった時代の工夫だが、アクセス権の表現やIPアドレスの扱いという形で現在の設計にそのまま残っている。
具体例
Linuxのファイル権限 0644 は、所有者・グループ・その他の権限を3ビットずつ詰めた表現で、ある権限があるかはANDで検査し、付与はORで行う。IPアドレスとサブネットマスクのANDがネットワークアドレスになり、192.168.10.130 と 255.255.255.192 なら 192.168.10.128 が求まる。
試験での引っ掛け
「立てる」のはORで1を重ねる操作、「落とす」のはANDで0を掛ける操作(x AND NOT m)であり、逆にすると結果がまったく変わる。マスクは論理演算であって、シフト演算のように桁位置を動かすわけではない。XORによる反転は同じマスクを2回かけると元に戻る点、右シフトで符号ビットを埋めるのは算術シフトだけである点も併せて狙われる。
関連用語
出た過去問
出典:平成28年度 春期 応用情報技術者試験 午前 問35(IPA)
クラスCのIPアドレスを分割して,10個の同じ大きさのサブネットを使用したい。ホスト数が最も多くなるように分割した場合のサブネットマスクはどれか。
正解:255.255.255.240
要点:必要な分割数を満たす最小のサブネットビット数を選ぶ
クラスCではホスト部が8ビットある。10個のサブネットを作るにはサブネット番号に4ビット必要(3ビットでは8個しか作れない)で、残るホスト部は4ビットとなる。上位4ビットを1にしたマスクは255.255.255.240である。
出典:平成31年度 春期 応用情報技術者試験 午前 問34(IPA)
次のIPアドレスとサブネットマスクをもつPCがある。このPCのネットワークアドレスとして、適切なものはどれか。 IPアドレス: 10.170.70.19 サブネ…
正解:10.170.70.16
要点:ネットワークアドレスはIPアドレスとサブネットマスクの論理積
サブネットマスク255.255.255.240は上位28ビットがネットワーク部で、第4オクテットの上位4ビットだけが有効である。19は2進数で0001 0011なので、下位4ビットを0にすると0001 0000=16となり、ネットワークアドレスは10.170.70.16になる。
出典:令和3年度 秋期 応用情報技術者試験 午前 問35(IPA)
IPv4ネットワークにおいて、あるホストが属するサブネットのブロードキャストアドレスを、そのホストのIPアドレスとサブネットマスクから計算する方法として、適切な…
正解:サブネットマスクの各ビットを反転したものとIPアドレスとの論理和を取る。
要点:ブロードキャストアドレスはホスト部を全て1にしたもの
サブネットのブロードキャストアドレスは、ネットワーク部はそのままでホスト部を全て1にしたアドレスである。サブネットマスクのビットを反転するとホスト部だけが1のパターンになるので、これとIPアドレスの論理和を取ればホスト部が全て1になる。逆にIPアドレスとサブネットマスクの論理積を取ればネットワークアドレスが得られる。
出典:令和3年度 春期 応用情報技術者試験 午前 問34(IPA)
IPv4ネットワークで使用されるIPアドレスaとサブネットマスクmからホストアドレスを求める式はどれか。ここで、“~”はビット反転の演算子、“|”はビットごとの…
正解:a & ~m
要点:ホストアドレスはa&~m、ネットワークアドレスはa&m
サブネットマスクは、ネットワーク部のビットが1、ホスト部のビットが0である。したがってマスクを反転するとホスト部だけが1になり、これとIPアドレスの論理積をとればネットワーク部が0に落ちてホストアドレスだけが残る。ネットワークアドレスを求める式はa&mであり、対になる形で覚えるとよい。
出典:令和5年度 秋期 応用情報技術者試験 午前 問34(IPA)
サブネットマスクが255.255.252.0のとき、IPアドレス172.30.123.45のホストが属するサブネットワークのアドレスはどれか。
正解:172.30.120.0
要点:サブネットアドレスはIPとマスクの論理積で求める
サブネットマスク255.255.252.0は前半22ビットがネットワーク部で、第3オクテットの上位6ビットまでが該当する。IPアドレスの第3オクテット123(01111011)とマスクの252(11111100)の論理積を取ると120(01111000)になる。第4オクテットはすべてホスト部なので0となり、サブネットワークアドレスは172.30.120.0である。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。