情報25【電験3種 機械】2進数の和と差からBの値を求める連立方程式!令和元年度 A問題14 完全解説

電験3種 機械科目【情報】令和元年度 A問題14 2進数の和と差からBの値を求める(連立方程式的アプローチ)

今回は令和元年度 機械科目 A問題14を解説します。2進数AとBについて、その和A+B=(101010)2と差A-B=(1100)2が与えられたとき、Bの値を求める問題です。

2進数のまま連立方程式のように「和-差」を計算して2Bを求め、最後に2進数を1桁右シフト(÷2)してBを求めるのが最短ルートです。10進数に変換して検算すると確実です。

目次

令和元年度 機械科目 A問題14:問題文と選択肢

まずは、実際の試験問題を確認してみましょう。

電験3種 機械科目 情報 令和元年度 A問題14 問題文
令和元年度 機械科目 A問題14 問題文

電験3種 機械科目 【情報】 令和元年度 A問題14

 2進数AとBがある。それらの和がA+B=(101010)2,差がA-B=(1100)2であるとき,Bの値として,正しいものを次の(1)〜(5)のうちから一つ選べ。

(1)(1110)2 (2)(1111)2 (3)(10011)2 (4)(10101)2 (5)(11110)2

出題のポイント:和から差を引いて2Bを作る

2進数AプラスBからAマイナスBを引いて2Bを求め1桁右シフトでBを得る手順図
和-差=2Bを利用し、6桁で引き算した(011110)₂を1桁右へシフトします。

A+BからA-Bを引くとAが消え、2Bが残ります。桁数をそろえて(101010)₂-(001100)₂=(011110)₂を計算し、1桁右シフトして2で割るとB=(001111)₂=(1111)₂です。最後に10進数へ直して検算すると、借りの誤りを見つけやすくなります。

ポイント解説:6桁をそろえて引き算・右シフトする

101010から001100を引く6桁の筆算と右シフトおよび各ビット列の10進変換表
(011110)₂は30で、右シフトした(001111)₂は15です。

2進数のまま「和+差」「和-差」の連立方程式的な操作を行うと、10進数への変換を経由せずに直接計算できます。A+BとA-Bの差をとると2Bが求まり、そこから1桁右シフト(÷2)してBを得ます。

計算後は10進数に変換して検算すると、桁の繰り下がりミスがないか確実に確認できます。

問題の解説:10進数の和と差でも検算する

Bを15と求めAを27と確認し2進数の和101010と差001100が一致することを示す解答図
A=(11011)₂、B=(1111)₂を代入すると元の和と差に一致し、正解は(2)です。

STEP1 ①式と②式を立てる

①式:A+B=(101010)2 ②式:A-B=(1100)2

STEP2 ①-②より2Bを求める

$$2B=(101010)_2-(001100)_2=(011110)_2$$

STEP3 2進数を1桁右シフトしてBを求める

2倍は2進数で1桁左シフトに対応するので,その逆操作でBを求めると,

$$B=(011110)_2\div(10)_2=(1111)_2$$

STEP4 10進数で検算する

(101010)2=42,(1100)2=12なので,2B=42-12=30,B=15=(1111)2

STEP3の結果と一致するので,答えは(2)です。

答え:(2)

💡 覚え方
A+BとA-Bが与えられたら,2進数のまま引き算して2Bを求め,1桁右シフトでBを得るのが最速。10進変換での検算を忘れずに。

⚠️ よくある間違い
2進数の引き算で桁借りを間違えない。1桁右シフトを「10で割る」と混同せず,2進数における÷2の操作として正しく行うこと。

まとめ

A+B101010(2)
A-B001100(2)
2B011110(2)
B1111(2)
答え(2)

▼あわせて解きたい関連問題
・ビット論理演算(ExOR・NOR・OR)から16進数へ:【機械】平成29年度A問題14
・AND・OR・EX-OR・NANDの4種論理演算と16進変換:【機械】平成21年度A問題14

📚 次に解くべき関連問題
【機械】平成29年度A問題14(情報24)
【機械】平成21年度A問題14(情報26)
【機械】令和6年度上期B問題18(情報27)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次