シカラボ

基数変換のやり方|2進数・16進数・10進数の行き来を手順で覚える【ITパスポート】

シカラボ編集部
基数変換のやり方|2進数・16進数・10進数の行き来を手順で覚える【ITパスポート】

「10」と書かれた数を、いくつだと読むでしょうか。ふつうは十です。ところがコンピュータの世界では、これが二を表すことも、十六を表すこともあります。同じ見た目なのに値が変わる——ここでつまずく人は多いです。読み分ける鍵は、その数が何進数で書かれているかにあります。

基数とは、位が何倍ずつ増えるかを決める数

基数(きすう)とは、位が1つ上がるごとに何倍になるかを決める数です。10進数なら10倍、2進数なら2倍、16進数なら16倍になります。基数変換とは、同じ数を別の基数で表し直すことをいいます。

仕組みを確かめるために、まず10進数の155を分解してみましょう。

3桁目2桁目1桁目
数字155
重み10² = 10010¹ = 1010⁰ = 1

100×1 + 10×5 + 1×5 = 155 です。ふだん意識せずにやっている計算ですね。

2進数も16進数も、位取りの仕組みは同じです。変わるのは位の重みと、各桁で使える数字だけです。

10進数の155・2進数の10011011・16進数の9Bを並べ、各桁の重みが10倍・2倍・16倍ずつ増えることを対比した図

2進数から10進数へ:1が立っている位の重みを足す

3つの方向のうち、これがいちばん簡単です。1が書かれている位の重みを足すだけで終わります。

2進数の 10011011 で試してみましょう。

重み1286432168421
数字10011011

1が立っているのは 128・16・8・2・1 の位です。足すと 155。さきほどの155と同じ数だとわかります。

コツは、計算の前に右から 1, 2, 4, 8, 16, 32, 64, 128 を書き出してしまうことです。

10進数から2進数へ:2で割り続けて、余りを下から読む

逆向きは割り算を使います。手順は3つです。

  1. 10進数を2で割り、商と余りを書く
  2. 商が0になるまで、割り算を繰り返す
  3. 余りを下から上に読む

同じ155でやってみましょう。

割り算余り
155 ÷ 2771
77 ÷ 2381
38 ÷ 2190
19 ÷ 291
9 ÷ 241
4 ÷ 220
2 ÷ 210
1 ÷ 201

余りを下から読むと 10011011 です。ひとつ前の節で足し算から求めた2進数と一致しました。

155を2で繰り返し割った筆算と、余りを下から読むと10011011になることを矢印で示した図。上から読むと別の数になる誤りも併記している

間違えやすいのは、余りを読む向きです。上から読むと 11011001 となり、まったく別の数になってしまいます。これは実際に過去問の誤答の選択肢として用意されている形です。下から読む、と覚えておいてください。

なお、この割り算は整数の部分の手順です。小数の部分は逆に2を掛けて、積の整数部(0か1)を上から順に並べます。0.625 なら、0.625×2=1.25 で1、0.25×2=0.5 で0、0.5×2=1 で1。並べて .101 です。ただし小数によっては終わりません。その場合は問題が指定する桁で打ち切ります。

16進数はなぜ使うのか

2進数は機械には都合が良い一方、人には読みにくい表し方です。155がすでに8桁になります。そこで出番になるのが16進数です。

16進数では、0から9までのあとをA〜Fで表します。Aが10、Bが11、Cが12、Dが13、Eが14、Fが15です。

過去問では、こう問われています。

16進数のA3は10進数で幾らか。

(出典:ITパスポート試験 平成24年秋期 問79)

考え方は10進数のときと変わりません。A3は2桁なので、重みは16と1です。Aは10ですから、16×10 + 1×3 = 163 となります。

16進数が便利なのは、2進数4ビットがちょうど16進数1桁に収まるからです。4ビットで表せるのは0から15までの16通りで、16進数1桁の範囲と一致します。

そのため、2進数と16進数の行き来に割り算はいりません。整数なら、2進数から16進数へは右から4ビットずつ区切り、逆向きは1桁を4ビットに開くだけです。左端が4ビットに足りなければ、0を補って考えます。

たとえば 10011011 を、右から4ビットずつ区切ってみましょう。1001 と 1011 に分かれます。1001 は 8+1 = 9、1011 は 8+2+1 = 11 なのでBです。つなげると 9B となります。

同じ考え方は8進数にも使えます。8進数は1桁が3ビットぶんなので、区切る幅を3に変えるだけです。

試験ではこう出る

学習の上では、大きく2つのタイプに整理できます。変換そのものを計算させる形と、2進数の仕組みを応用させる形です。応用には、2進数の加算、2の補数、組合せの数を数える問題などがあります。まずは土台の変換からどうぞ。

腕試し問題

出典:ITパスポート試験 平成21年秋期 問64

8進数の55を16進数で表したものはどれか。

解答と解説

解説(解答せずに開けます)

正解はです。

正答の理由

8進数は1桁が3ビットぶんです。55なら 5 = 101、5 = 101 なので、つなげると 101101 になります。これを右から4ビットずつ区切ると 10 と 1101。左を0で埋めて 0010 と 1101 なので、2D です。

誤答の解説

8進数の55は、10進数では 8×5 + 5 = 45 です。残りの選択肢を10進数に直すと、どれも45になりません。

  • ❌ イ「2E」→ 16×2 + 14 = 46
  • ❌ ウ「4D」→ 16×4 + 13 = 77
  • ❌ エ「4E」→ 16×4 + 14 = 78

ポイント

  • 8進数は1桁が3ビット、16進数は1桁が4ビット区切る幅が違うだけです
  • 2と8と16は2の累乗どうしです。いったん2進数に開けば、あとは区切り直すだけで済みます

もう1問、基数の考え方が実際の場面で使われる出題も見ておきましょう。

腕試し問題

出典:ITパスポート試験 令和3年度 問66

RGBの各色の階調を、それぞれ3桁の2進数で表す場合、混色によって表すことができる色は何通りか。

解答と解説

解説(解答せずに開けます)

正解はです。

正答の理由

3ビットで表せるのは 000 から 111 までで、2×2×2 = 8通りです。この8通りが赤・緑・青のそれぞれにあるので、混色の組合せは 8×8×8 = 512通りになります。

誤答の解説

  • ❌ ア「8」→ 1色ぶんの階調数。3色の組合せになっていない
  • ❌ イ「24」→ 8×3。3色ぶんを掛け合わせる(8³)べきところを、3倍にした形
  • ❌ ウ「256」→ 2⁸。1色を8ビットで表したときの階調数で、ビット数を取り違えている

ポイント

  • **「nビットで表せるのは2ⁿ通り」**が土台になります
  • 色数や組合せの数を問う出題は、この形が繰り返し使われます

まとめ

  • 基数は、位が1つ上がるごとに何倍になるかを決める数
  • 2進数から10進数へは、1が立っている位の重みを足す
  • 10進数から2進数へは、2で割り続けて余りを下から読む
  • 整数を2進数から16進数へは、右から4ビットずつ区切るだけ。足りなければ左を0で埋める
  • 割り算は整数の部分の手順。小数の部分は2を掛けて、積の整数部を上から順に並べる
  • nビットで表せるのは 2ⁿ通り(000 も数に入る固定長の話)

手順そのものは単純です。まずは計算用紙の隅に 1, 2, 4, 8, 16, 32, 64, 128 を書き出す癖をつけてみてください。それだけで解ける問題がぐっと増えるはずです。

この記事のタグ

関連記事