【CCNA対策】【新試験対応】2進数・10進数・16進数 相互変換のラクな覚え方

こんにちは。CCNA勉強中のChanmeiです。
CCNA学習する上で避けて通れないのが、2進数・10進数・16進数の相互変換です。
しかし10進数ならまだしも、2進数や16進数は日常生活で利用することが少ないこともあって苦手意識を感じる方もいるのではないでしょうか。
もっとも私は計算や数学的なことが苦手ですので、それぞれの仕組みを理解するまでかなりの時間を要しました。
今回は、そんな私でも理解できたシンプルで覚えやすいなと思った方法を紹介していきます。
このページの主旨は、初学者でも「楽しく」「体感的」に覚えられることを目的にしていますので、厳密に言うと正しくない表現もあるかもしれません。
あくまで一つの考え方としてお楽しみください。
目次
2進数・16進数とはなんだろうか

10進数について
本題に入る前に、まずは10進数とは何かを軽く触れておきます。
10進数は普段から聞き慣れている数字ですので、たぶん違和感はないと思いますが、10の位・100の位・1000の位というように位の単位は、10のn乗で進んでいることがわかると思います。
例えば、10の2乗は100で3乗だったら1000というように。
この法則を頭の片隅にでも入れておくことによって、2進数も16進数も理解が進みやすいかなと思います。
2進数について
10進数が10のn乗で繰り上がるように、2進数は2のn乗で繰り上がります。
2進数は、0と1の2つの数字を使って表示します。以下の表のように2のn乗ごとに桁が増えていくのがわかると思います。

16進数について
こちらも、10進数・2進数と同じように16のn乗ごとに繰り上がります。
16進数は、0〜9までの数字とA〜Fまでのアルファベットで構成されます。具体的には以下の図の通りです。

この表の通り、16の2乗である256だと100、3乗の4096だと1000というように16のn乗ごとに桁が増えていきます。
補足
今回紹介する方法をスムーズに行うためには、2進数・10進数・16進数の相互変換を多少なりともすぐにイメージできた方がより効率よく進められます。
とはいえ全ての数字を暗記することはとても無理ですので、最低でも16進数の1の位まではすぐにイメージできるように、以下のような一覧表を実際に書き出してみると理解がしやすくなります。

2進数からの変換

2進数から10進数への変換
例として、11111010という2進数を10進数に変換していきます。
以下の図のように、それぞれの位で1が立っている位(2のn乗)の数を全て足していくだけです。

答えは、250です。
2進数から16進数への変換
例として1011111010という2進数を16進数に変換していきます。
まず、下から4桁づつに分解していきます。そうすると、10 1111 1010 となりますよね。
あとは、以下の図のように分解した2進数を16進数に変換後にくっつけます。

※桁数が4桁に満たさない先頭の10は、頭に00をつけます
答えは2FAですが、16進数では10進数と区別するために頭に「0x」をつけます。ですので、表記は0x2FAとなります。
10進数からの変換

10進数から2進数への変換
10進数から2進数への変換は、10進数の数字を2で割り続けてその余りを1として、下から上に順に並べていく方法が一般的かもしれません。
ただ個人的には、先の2進数から10進数の変換方法の仕組みを利用して、10進数を2のn乗となる数の組み合わせで2進数を作っていくやり方の方がしっくりきました。
例として、250を2進数に変換してみます。

250は128の位より大きいですが、256の位よりは小さいので128の位より下の位の中でそれぞれ足して250になる組み合わせを作るようにします。
それぞれ足して250になる組み合わせというのは、以下の図の128+64+32+16+8+2=250の部分のことです。

250は128より大きいので、128の位に1が入ります。250-128で残りは122ですので、次は64の位で122-64=58というように順番に引き算していきます。
引き算の商が負数にならない場合は1を、それ以外は0が入ります。
上の図ですと、4の位では商がマイナスになるので0、2の位で商がゼロになったため組み合わせが完成したため、次の1の位には必然的に0が入るというわけですね。
2で割った余りを並べる方法と同じく工程が多いですが、個人的には割り算より引き算の方が計算もしやすく時間短縮になるのではないかと思います。
10進数から16進数への変換
こちらも10進数を16で割り続けてその余りを下から上に順に並べていく方法が一般的かもしれません。
しかし、直感的には先ほどの10進数から2進数への変換を行った後で2進数から16進数への変換を行う方が楽かなと思います。


16進数からの変換

16進数から2進数への変換
こちらは、2進数から16進数への変換方法と逆のことをします。
図で表すと以下の流れです。

2進数と16進数は相性が良いと言われていますので、比較的容易な方かもしれませんね。
16進数から10進数への変換
考え方としては、先ほどの2進数から10進数への変換と同じやり方で、16進数を分解したそれぞれの数を16のn乗の位と掛け算してくっつけます。
図にすると以下の通りです。


頭が混乱してきたけどこれならなんとか覚えられるかも!
理屈がわかれば、あとは慣れ次第かもね♪

いかがでしたか。この記事が少しでも役に立てれば幸いです。
本日は以上となります。
最後までお読みくださりありがとうございました。
Follow @punibastet