情報21【電験3種 機械】2進数・10進数・16進数の相互変換の正誤判定!令和3年度 A問題14 完全解説

電験3種 機械科目 情報 令和3年度 A問題14 2進・10進・16進を行き来!変換の誤りは?

今回は令和3年度 機械科目 A問題14を解説します。2進数,10進数,16進数の相互変換に関する5つの記述のうち、誤っているものを選ぶ問題です。

16進数を2進数に変換するときは、1桁ずつ4桁の2進数に対応させます。(3D)16は3→0011,D→1101なので(00111101)2、有効桁で表すと(111101)2となる点がポイントです。

目次

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

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

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

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

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

 2進数,10進数,16進数に関する記述として,誤っているものを次の(1)〜(5)のうちから一つ選べ。

(1)16進数の(6)16を16倍すると(60)16になる。
(2)2進数の(1010101)2と16進数の(57)16を比較すると(57)16の方が大きい。
(3)2進数の(1011)2を10進数に変換すると(11)10になる。
(4)10進数の(12)10を16進数に変換すると(C)16になる。
(5)16進数の(3D)16を2進数に変換すると(111011)2になる。

出題のポイント:16進1桁=2進4桁

誤りは(5)です。(3D)16 を2進数にすると (111101)2——選択肢は(111011)と書いており、下位2桁が入れ替わっています

16進数と2進数の対応

16進数1桁 = 2進数4桁 / 8進数1桁 = 2進数3桁

16=24、8=23——だから桁数がきれいに対応します。

\( 3=(0011)_2,\quad D=13=(1101)_2 \)
1桁ずつ変換
★D は13
\( (3D)_{16}=(0011\,1101)_2=(111101)_2 \)
つなげる
先頭の0 を落とす

16進数の変換は「1桁ずつ4桁にする」だけ——10進数を経由する必要はありませんD=13=1101 さえ分かれば即座に書けます。

10進2進8進16進
0〜70000〜01110〜70〜7
81000108
10101012★A
12110014★C
13110115★D
15111117★F

A〜F が10〜15——この対応だけは覚えておく必要があります。「A から始まって F まで6文字」と押さえておけば、C=12、D=13 もすぐ出てきます

2進数から10進数、16進数から10進数、16進1桁と2進4桁の変換規則を示す図
16進数の各桁を4ビットへ個別に直すと、並び間違いを防げます。

(1)〜(4) が正しい理由

(1) 16進数を16倍すると桁が1つ上がる

正しい記述です。10進数を10倍すると末尾に0 が付くのと同じ——16進数を16倍すれば末尾に0 が付きます

基数倍すると桁が1つ上がる——どの基数でも成り立つ性質です。2進数なら2倍で左シフト——本質は同じになります。

(2) 大小の比較

正しい記述です。(1010101)2=64+16+4+1=85(57)16=5×16+7=87——確かに16進数のほうが大きい

基数が違うものを比べるときは、必ず10進数にそろえる——見た目の桁数では判断できません2進数7桁と16進数2桁が、ほぼ同じ大きさだという感覚も持っておくとよいでしょう。

(3)(4) 基本的な変換

(1011)2=8+2+1=11——正しい2進数から10進数は、1 が立っている桁の重みを足すだけです。

(12)10=(C)16——これも正しい10=A、11=B、12=C の対応どおりです。

16進数3Dを0011と1101に分け、111101へ変換して答え5を示す解答図
(3D)₁₆は(0011 1101)₂、先頭の0を省けば(111101)₂です。
答え誤っているのは (5)です。(3D)16=(111101)2——選択肢の(111011)は下位2桁が違います

⚠️ よくある間違い
D を12 と誤ると (1100)になり、(111100) という別の誤りが出ます。C=12、D=13——1つずれやすいので注意してください。
検算は10進数で——(3D)16=3×16+13=61(111101)2=32+16+8+4+1=61 で一致。(111011)2 なら59 で合いません。

基数変換の道具立て

変換やり方コツ
2進→10進1 が立つ桁の重みを足す1,2,4,8,16,32,64,128
10進→2進2で割って余りを下から並べる重みを大きい順に引いてもよい
2進→8進★下位から3桁ずつ区切る足りない分は上位に0 を補う
2進→16進★下位から4桁ずつ区切る同上
16進→2進1桁を4桁に展開10進を経由しない

区切るのは必ず下位から——上位から区切ると桁がずれます足りない分は上位に0 を補って4桁(3桁)にそろえるのが手順です。

8進数と16進数が使われる理由は、2進数と相性がよく、しかも桁数が短くて済むから。2進数8桁が16進数なら2桁——人間が扱いやすい表現になっています。

⏱️ 本番での進め方
① 16進1桁=2進4桁。10進を経由しない。
② A〜F は10〜15。C=12、D=13。
③ (3D)16=0011 1101=(111101)2
④ 検算は10進数で。61 になれば正しい。

💡 覚え方
「16進1桁=2進4桁、8進1桁=2進3桁」——16=24、8=23 だからそして「区切るのは下位から」——上位から区切るとずれます

2進数、10進数、16進数に関する5選択肢を数値変換して正誤判定する表
選択肢(1)から(4)は正しく、(3D)₁₆のビット列を誤った(5)だけが誤りです。

なぜコンピュータは2進数なのか

10進数のほうが人間には自然なのに、コンピュータが2進数を使う理由を考えてみましょう。

観点2進数10進数
必要な状態の数★2つ(0と1)10段階
回路の作りやすさスイッチのオン・オフでよい10段階の電圧を区別する必要
ノイズへの強さ★強い弱い
桁数多くなる少ない

0 と1 の2状態なら、多少電圧がずれても判別できます——「しきい値より上か下か」だけ見ればよい10段階を区別しようとすると、わずかなノイズで誤ることになります。

これがディジタル信号がノイズに強い理由そのものです。アナログ信号は雑音がそのまま乗るが、ディジタルは判別さえできれば完全に復元できる——途中で何度中継しても劣化しないのです。

BCD——2進化10進数という折衷案

人間には10進数、機械には2進数——その折衷がBCD(Binary Coded Decimal)です。

10進数の1桁を、2進数4桁で表す——たとえば10進数の「29」なら 0010 1001純粋な2進数(11101)とは違う 点に注意してください。

10進数BCD純2進数
910011001
100001 0000★1010
290010 1001★11101

BCD では1010〜1111(10〜15)を使いません——だから効率は落ちますその代わり10進数との変換が桁ごとにできる——7セグメント表示など、表示用途で使われます

16進数が使われる場面

16進数は、実務でもよく目にする表記です。どこで使われているかを知っておくと親しみが湧きます。

場面桁数
色の指定#FF8000(オレンジ)6桁=3バイト
MACアドレス00:1A:2B:3C:4D:5E12桁=6バイト
メモリのアドレス0x004000008桁=4バイト

いずれも「2進数だと長すぎるから16進数で書く」——4分の1の桁数で済むのが理由です。しかも4桁ずつ機械的に2進数へ戻せる——人間にも機械にも都合がよい表記だと言えます。

まとめ

(3D)16(00111101)2=(111101)2
選択肢(5)の記載(111011)2(誤り)
答え(5)

▼あわせて解きたい関連問題
・2進数・10進数・8進数・16進数の基数変換(穴埋め):【機械】平成28年度A問題14
・ビットパターンの論理演算と16進数変換:【機械】令和6年度上期A問題14

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

この記事を書いた人

コメント

コメントする

目次