今回は平成21年度 機械科目 A問題14を解説します。2進数A=(1100 0011)2,B=(1010 0101)2について、論理積(AND)・論理和(OR)・排他的論理和(EX-OR)・否定的論理積(NAND)という4種類のビット演算を行い、それぞれを16進数で表す穴埋め問題です。
情報24と同系統のビット論理演算問題ですが、扱う演算がAND/OR/EX-OR/NANDの4種であり、4つの空欄すべてに数値が入る形式です。各ビット桁を丁寧に演算してから4桁ごとに16進数へ変換します。
平成21年度 機械科目 A問題14:問題文と選択肢
まずは、実際の試験問題を確認してみましょう。

電験3種 機械科目 【情報】 平成21年度 A問題14
2進数A,Bが,A=(1100 0011)2,B=(1010 0101)2であるとき,AとBのビットごとの論理演算を考える。AとBの論理積(AND)を16進数で表すと(ア),AとBの論理和(OR)を16進数で表すと(イ),AとBの排他的論理和(EX-OR)を16進数で表すと(ウ),AとBの否定的論理積(NAND)を16進数で表すと(エ)となる。
上記の記述中の空白箇所(ア),(イ),(ウ)及び(エ)に当てはまる数値として,正しいものを組み合わせたのは次のうちどれか。
(ア) (イ) (ウ) (エ) (1) (81)16 (E7)16 (66)16 (18)16 (2) (81)16 (E7)16 (66)16 (7E)16 (3) (81)16 (E7)16 (99)16 (18)16 (4) (E7)16 (81)16 (66)16 (7E)16 (5) (E7)16 (81)16 (99)16 (18)16
出題のポイント:4つのビット演算を区別

AND、OR、EX-OR、NANDは各ビットを独立に演算します。AとBを縦にそろえ、まず8ビットの結果を求めてから、上位4ビットと下位4ビットをそれぞれ16進1桁へ変換します。NANDはANDの結果を反転する演算です。
ポイント解説:AとBを縦にそろえて計算

本問は情報24と同系統のビット論理演算問題ですが、AND・OR・EX-OR・NANDという4種類の演算すべてを1組のビットパターンに対して行い、4つの空欄すべてに数値を埋める形式です。
8ビットのデータを4ビットずつ2グループに分けて演算し、それぞれを16進数の1桁に変換すると効率よく解けます。
問題の解説:4ビットずつ16進数へ変換

STEP1 (ア)AND(論理積)を求める
A=1100 0011,B=1010 0101の対応ビットがともに1のときだけ1とすると,
$$A\cdot B=1000\ 0001=(81)_{16}$$
STEP2 (イ)OR(論理和)を求める
対応ビットのいずれかが1なら1とすると,
$$A+B=1110\ 0111=(E7)_{16}$$
STEP3 (ウ)EX-OR(排他的論理和)を求める
対応ビットが異なれば1とすると,
$$A\oplus B=0110\ 0110=(66)_{16}$$
STEP4 (エ)NAND(否定的論理積)を求める
AND結果の否定をとると,
$$\overline{A\cdot B}=0111\ 1110=(7E)_{16}$$
以上より(ア)(81)16(イ)(E7)16(ウ)(66)16(エ)(7E)16の組合せである(2)が正解です。
答え:(2)
💡 覚え方
AND=両方1,OR=どちらか1,EX-OR=異なれば1,NAND=ANDの否定。8ビットは4ビットずつ2分割して16進の1桁ずつに変換すると計算ミスが減る。
⚠️ よくある間違い
NANDをNORと取り違えない(NANDはANDの否定,NORはORの否定)。4ビットのグループ分けを誤ると16進変換がずれるので注意。
まとめ
| (ア) AND | (81)16 |
| (イ) OR | (E7)16 |
| (ウ) EX-OR | (66)16 |
| (エ) NAND | (7E)16 |
| 答え | (2) |
▼あわせて解きたい関連問題
・ビット論理演算(ExOR・NOR・OR)から16進数へ:【機械】平成29年度A問題14
・2進数の和と差からBの値を求める連立方程式:【機械】令和元年度A問題14

コメント