情報22【電験3種 機械】2進数・10進数・8進数・16進数の基数変換(穴埋め)!平成28年度 A問題14 完全解説

電験3種 機械科目 情報 平成28年度 A問題14 2進から16進へ自在に変換!基数の橋渡し

今回は平成28年度 機械科目 A問題14を解説します。2進数を10進数に、10進数を2進数に、2進数を8進数に、16進数を2進数に、という4種類の基数変換を順に行う空所補充問題です。

2進数→10進数は各桁の重み(2の累乗)を足し合わせ、10進数→2進数は2で逐次除算して余りを下から並べます。2進数→8進数・16進数はそれぞれ3桁・4桁ずつ区切って変換するのが基本テクニックです。

目次

平成28年度 機械科目 A問題14:問題文と選択肢

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

電験3種 機械科目 情報 平成28年度 A問題14 問題文
平成28年度 機械科目 A問題14 問題文

出典:一般財団法人 電気技術者試験センター「平成28年度 第三種電気主任技術者試験」機械科目 A問題14

電験3種 機械科目 【情報】 平成28年度 A問題14

 次の文章は,基数の変換に関する記述である。

 ・2進数00100100を10進数で表現すると(ア)である。

 ・10進数170を2進数で表現すると(イ)である。

 ・2進数111011100001を8進数で表現すると(ウ)である。

 ・16進数(エ)を2進数で表現すると11010111である。

 上記の記述中の空白箇所(ア),(イ),(ウ)及び(エ)に当てはまる組合せとして,正しいものを次の(1)〜(5)のうちから一つ選べ。

(ア)(イ)(ウ)(エ)
(1)36101010107321D7
(2)37110101007341C7
(3)36110101007341D7
(4)36101010107341D7
(5)37110101007321C7

出題のポイント:4種類の変換を順にこなす

基数変換の基本4パターンが1問にまとまっています1つずつ確実に処理すれば、選択肢は自然に絞れます

空欄変換答えやり方
(ア)2進→10進36重みを足す
(イ)10進→2進101010102で割って余りを並べる
(ウ)2進→8進7341★3桁ずつ区切る
(エ)16進→2進D7★4桁ずつ区切る
平成28年度A問題14の4つの基数変換と各空欄の結果
4つの変換結果は36、10101010、7341、D7となり、正解は(4)です。

それぞれを計算する

\( (00100100)_2=32+4=36 \)
(ア)2進→10進
1 が立つのは25と22
\( 170=128+32+8+2=(10101010)_2 \)
(イ)10進→2進
★大きい重みから引いていく
\( (111\,011\,100\,001)_2=(7341)_8 \)
(ウ)2進→8進
★下位から3桁ずつ
\( (1101\,0111)_2=(\mathrm{D7})_{16} \)
(エ)16進→2進の逆
★下位から4桁ずつ。1101=D、0111=7

(イ)の170 は覚えやすい数です。10101010 という交互のパターン——128+32+8+2=170 になります。ちなみに01010101 なら85で、足すと255=11111111 です。

(ウ)は12桁を3桁ずつ4組に分ける——111/011/100/001 →7/3/4/1ちょうど割り切れる桁数なので、0 を補う必要はありません。

(エ)は8桁を4桁ずつ2組——1101/0111 →D/71101=8+4+1=13=D0111=4+2+1=7 です。

00100100と170と111011100001と11010111の基数変換手順
170を2で逐次除算した余りは下から読み、10101010₂を得ます。全空欄の組合せは選択肢(4)です。
答え(ア)36 (イ)10101010 (ウ)7341 (エ)D7——正解は (4)です。

⚠️ よくある間違い
(ア)を37 としている選択肢末尾の0 を1 と読み違えたもの。00100100 の1 は6桁目と3桁目——32+4=36 です。
(エ)を C7 としている選択肢1101 を12(C)と誤ったもの。1100=C、1101=D——1つ違いです。
(ウ)を7321 としている選択肢3桁目の区切りを誤ったもの——下位から区切ることを徹底してください。

10進→2進の2つのやり方

(イ)の変換には、2つの方法があります。どちらでも同じ答えになるので、やりやすいほうを使ってください。

方法手順向いている場面
逐次除算法2で割って余りを記録、下から並べる機械的で確実
重み減算法★大きい重みから引けるだけ引く暗算で速い

重み減算法なら——170 から128 を引いて42、32 を引いて10、8 を引いて2、2 を引いて0使った重みは128・32・8・2 なので、その桁に1 を立てれば10101010 になります。

2の累乗を覚えておくと速い——1、2、4、8、16、32、64、128、256、512、10241024=210≒1000 という感覚も、情報の分野では頻繁に使います

⏱️ 本番での進め方
①(ア)1 が立つ桁の重みを足す。32+4=36。
②(イ)大きい重みから引く。128+32+8+2=170。
③(ウ)★下位から3桁ずつ。111 011 100 001=7341。
④(エ)★下位から4桁ずつ。1101 0111=D7。

💡 覚え方
「8進は3桁、16進は4桁、区切りは下位から」——この一言で(ウ)(エ)が解けますそして「1101=D」——C との1つ違いに注意してください。

2進数の桁の重み、2による逐次除算、3ビットと4ビットの区切り方
2進数から8進数は3桁ずつ、16進数は4桁ずつ右から区切ります。

小数の基数変換

本問は整数だけでしたが、小数の変換も出題されることがあります整数部とは手順が逆になるので押さえておきましょう。

整数部小数部
操作2で割る★2を掛ける
拾うもの余り★1の位に繰り上がった値
並べる順下から上へ★上から下へ

0.625 を2進数にしてみましょう——0.625×2=1.25(1 が出る)、0.25×2=0.5(0)、0.5×2=1.0(1)並べて 0.101 になります。

検算は重みで——0.101=1/2+0/4+1/8=0.5+0.125=0.625小数点以下の重みは 1/2、1/4、1/8… です。

2進数で表せない小数がある

0.1(10進数)を2進数にすると、循環小数になります。0.0001100110011…——いつまでも終わりません

10進数で1/3 が0.333… になるのと同じ——基数で割り切れない分数は循環するのです。2進数で有限桁になるのは、分母が2の累乗の分数だけになります。

だからコンピュータでは0.1+0.2 が0.3 にならない——有限桁で打ち切るしかないから誤差が出るのです。お金の計算に浮動小数点を使ってはいけないと言われる理由がここにあります。

2の累乗を覚えておく

基数変換では2の累乗が繰り返し出てきます10乗まで覚えておくと計算が速くなるでしょう。

n2nn2n
0〜31、2、4、88256
4〜716、32、64、12810★1024

210=1024≒1000——だから「1キロバイト=1024バイト」になります。220≒100万でメガ、230≒10億でギガ——10乗ごとに1000倍 という対応です。

本問の170=128+32+8+2 も、2の累乗を覚えていれば暗算できます。大きいほうから引いていくだけです。

変換を間違えないための確認法

基数変換は手順が単純なぶん、うっかりミスが起きやすい——簡単な確認法を持っておくと安心です。

確認法やり方効果
桁数の見当2進8桁なら0〜255 の範囲大きく外れたら気づける
逆変換★答えを元に戻して一致を見る最も確実
偶奇の一致2進の末尾が0 なら10進も偶数一瞬で確かめられる

偶奇の確認は速くて有効です。(00100100)2 の末尾は0 なので偶数——36 は偶数なので矛盾しませんもし37 なら奇数で、末尾が1 でなければおかしいと分かります。

この一手だけで(ア)が36 か37 かを決められる——計算し直すより速い方法です。

まとめ

(ア)36
(イ)10101010
(ウ)7341
(エ)D7
答え(4)

▼あわせて解きたい関連問題
・2進数・10進数・16進数に関する記述の正誤判定:【機械】令和3年度A問題14
・ビットパターンの論理演算と16進数変換:【機械】令和6年度上期A問題14

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

この記事を書いた人

コメント

コメントする

目次