ビット演算によるマスク処理とは?びっとえんざんによるますくしょり
ビット演算によるマスク処理とは、AND・OR・NOTなどの論理演算を、目的のビットだけを狙って組み合わせ、特定のビットを取り出す・1にする・0にする操作。取り出したいビットだけを1にした値(マスク)を用意し、ANDを取れば他のビットが0に落ちて必要な部分だけが残る。基本情報では、フラグ(あり/なしを表す印)の管理、サブネットマスク(IPアドレスのうちネットワークを表す部分の範囲を示す値)によるネットワークアドレスの算出、アクセス権の判定として問われる。
最終更新:2026-10-09
この語が出る過去問を解く →背景
状態が「あり/なし」の2値で数十個ある場合、1項目ずつ変数を用意すると場所も手間も増える。1つの整数の各ビットに1項目ずつ割り当てれば、まとめて保存でき比較も1命令で済む。しかしこの形にすると、特定の1項目だけを読み書きする手段が要る。それを論理演算だけで実現するのがマスク処理である。ネットワーク分野でIPアドレスをネットワーク部とホスト部に分ける処理も、まったく同じ仕組みで動いている。
具体例
状態をビットで持つとき、ANDで該当ビットが1かどうかを検査し、ORでその権限を追加し、ANDとNOTの組合せ(x AND NOT m)で剥奪する。IPアドレス192.168.10.35とサブネットマスク255.255.255.0のANDを取る場合、255は2進数で8ビットすべてが1、0はすべてが0なので、先頭3組の192.168.10はそのまま残り、最後の35は0に落ちる。こうしてネットワークアドレス192.168.10.0が得られる。
試験での引っ掛け
「立てる」のは1を重ねるORの操作、「落とす」のは0を掛けるANDの操作で、逆に覚えると結果がまったく変わる。またマスクは論理演算であり、シフト演算のように桁の位置を動かすわけではない。取り出したビットを右端に寄せたい場合は、AND後にシフトを別途行う必要がある。
関連用語
出た過去問
出典:平成28年度 秋期 基本情報技術者試験 午前 問33(IPA)
出典:平成29年度 秋期 基本情報技術者試験 午前 問35(IPA)
次のIPアドレスとサブネットマスクをもつPCがある。このPCのネットワークアドレスとして、適切なものはどれか。 IPアドレス:10.170.70.19 サブネッ…
正解:10.170.70.16
要点:ネットワークアドレスはIPとサブネットマスクのビット論理積
サブネットマスク255.255.255.240は上位28ビットがネットワーク部で、第4オクテットの上位4ビットまでが該当する。第4オクテットの19は2進数で00010011なので、下位4ビットを0にすると00010000=16になる。したがってネットワークアドレスは第4オクテットが16の値となる(このサブネットは16〜31、ブロードキャストは31)。
出典:平成30年度 春期 基本情報技術者試験 午前 問32(IPA)
次のネットワークアドレスとサブネットマスクをもつネットワークがある。このネットワークをあるPCが利用する場合、そのPCに割り振ってはいけないIPアドレスはどれか…
正解:200.170.70.31
要点:各サブネットの先頭と末尾はネットワーク/ブロードキャスト用
サブネットマスク255.255.255.240はホスト部が4ビットで、200.170.70.16のネットワークでは16がネットワークアドレス、31がブロードキャストアドレスとなる。この2つは機器に割り当てられないので、200.170.70.31は使用できない。
出典:平成31年度 春期 基本情報技術者試験 午前 問32(IPA)
192.168.0.0/23(サブネットマスク255.255.254.0)のIPv4ネットワークにおいて、ホストとして使用できるアドレスの個数の上限はどれか。
正解:510
要点:ホスト数=2^(32−プレフィックス長)−2
プレフィックス長が23なので、ホスト部に使えるのは32−23=9ビットである。9ビットで表せる組合せは2の9乗=512通りだが、すべて0のネットワークアドレスとすべて1のブロードキャストアドレスは端末に割り当てられない。したがって使えるホストアドレスは512−2=510個となる。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。