私たちが日常的に使っていて慣れ親しんでいるのが10進数 (10進法)です。人間が一番数えやすい数え方とされいます。
世界ではかつて20進数が使われていたり、インドの地域によっては100つの全く関連性のない数字の数え方をするそうです。しかし日本を含め世界の標準は10進法です。なぜ10進法が採用されたかというと、両手を使い最も数えやすい数字が10という事からそのようになったようです。
数え方は1~10までではなく、0~9の10個の数を組み合わせて10進数が表されます。0、1、2、3… 9 までいったら10を基数として …98、99といったら10の2乗で100の位 (10×10=100) 、10の3乗 (10×10×10=1000) で1000の位と上がっていきます。この10、100、1000と位が上がっていく事を「桁の重み」と言います。
例えば10進数で25678という数なら「2×10の4乗 5×10の3乗 6×10の2乗 7×10の1乗 + 8×10の0乗」と分解する事が出来ます。
ただ我々人間がプログラムを作りコンピュータを操作するためには10進数ではなく2進数の方が何かと都合が良いです。なぜかというと、コンピュータの根本の部分は0 (OFF)と1 (ON) の2進数によって画像、音声、動画、Windowsなどの全てのプログラムが計算されているからです。
SPONSORED LINK
25678を2進数でコンピュータが理解できる数に変換してみます。
・
・
110010001001110となります。
ちょっと、意味わからないですよね・・・。
2進数はひとまずおいといて、次にコンピュータを扱う我々人間が理解しやすいという16進数に変換すると
・
・
644Eとなります。こちらも当選ですが全く意味わからないです。
プログラムの理解度を深めるためにはこれらの知識が必要不可欠なようで、2進数 = 10進数 = 16進数 と自由自在に変換できる力が求められます。このような問題は図にした方が伝わりやすく理解しやすいと思うの最後の方の章でいくつか図にしてみました。
▼この記事の目次
2進数・16進数
まず全てに共通しているのが、10進数のように1からではなく0からスタートしているという事です。表で比較してみましたのでご覧ください。
10進数 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
16進数 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
2進数 | 0 | 1 | 10 | 11 | 100 | 101 | 110 | 111 | 1000 | 1001 |
10進数 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
16進数 | A | B | C | D | E | F | 10 |
2進数 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 | 10000 |
2進数
2進数は2を基数とした数え方で0と1の組み合わせで表されます。2進数はコンピュータと最も相性が良い数え方とされています。
16進数
16進数は16を基数とした数え方で0~9、A~Fの計16ある数字の組み合わせで表されます。16進数はコンピュータ、人間と両面から見て比較的相性が良い数え方とされています。
2進数と相性が良いという証拠にこのような比較もできます。
- F (16進数) = 1111 (2進数)
- FF (16進数) = 1111 1111 (2進数)
- FFF (16進数)= 1111 1111 1111 (2進数)
- FD (16進数) = 1111 1101 (2進数)
- FDD (16進数)= 1111 1101 1101 (2進数)
- CA8 (16進数)= 1100 1010 1000 (2進数)
上で10進数・16進数・2進数と比較した表と合わせてみて下さい。法則らしきものがあるのがわかります。ただやはり計算の仕方も知っておきたいので次の章ではそちらを紹介したいと思います。
2進数 = 10進数 = 16進数・計算方法
2進数 → 10進数
まず2進数から10進数への計算方法を紹介します。下に0と1で組み合わせた数字を用意しました。
「2進数」10011011
この0と1の2進数を10進数に変換して解いていきます。それでは用意した図をご覧ください。
▼このように「2進数… 10011011」は「10進数… 155」になります。
「10011011」は8ケタあるのでコンピュータのデータだと8bitになります。計算方法は、かくかくしかじか… 上の図の通りです。筆者だけかもしれませんが、こういった数学的な説明は説明する方も覚える方もYouTubeなどの動画の方がわかりやすいし向いているかもしれません。なので今回のブログは主に図で解説していきます。
10進数 → 2進数
▼こちらも図だけ見ればわかるようにしました。
「10進数… 155」2で割って、余りがあれば1無ければ0と記していきます。0になるまで商を割っていき最後に1が余った所、下から読み上げていきそれをつなげると2進数になります。
155 (10進数) = 10011011 (2進数)
2進数 → 16進数
こちらはこのようになりました。2進数から16進数に変換する場合は4つずつ区切ります。あとは1の数字
16進数 → 2進数
上の問題を逆さに計算します。巻き戻しです。
16進数 → 10進数
16進数から10進数にする場合は、分解したそれぞれの数字に16の○乗を掛けます。FF8Dとか数が多くなる場合は掛ける位の数も16の2乗=256、16の3乗=4096、16の4乗=65536と増やしていきます。
この記事のまとめ
とりあえず計算方法をまとめてみましたが結構面倒です。わからない場合や計算が合っているか確かめたい場合は2進数・8進数・10進数・16進数を変換してくれるWEBサービスがあるので活用すると良いでしょう。
ちなみに2進数=8進数の計算方法は、2進数=16進数と似ていて簡単なので手短に説明します。16進数は4つずつに区切って計算しますが、8進数は3つずつに区切るというその変化だけになります。符号ビット (正負を表す) なるものもありますが、そちらはまたの機会に。
SPONSORED LINK