TECH BLOG 技術ブログ

2020.08.19 /

10進数と2進数

●2進数って何?

高校数学で習うこともあり、”2進数”という言葉自体は聞いたことのある方も多いのではないでしょうか?
今回はその2進数と10進数の違いや、2進数を10進数に変換する方法などをまるっと解説していきたいと思います。

まず私たちが普段何気なく使っている数は10進数と呼ばれるものです。
それに対し、コンピューターの内部では2進数という数を用いて処理を行っています。

ちなみに、「2進数と言う割には2出てこないじゃん?」と筆者は思っていたのですが、
0,1という“2”つの数字を使って表すから2進数なんですね。
言われてみれば10進数も0,1,2,3,4,5,6,7,8,9という10個の数字を使って表す数でした。
ややこしいですが、覚えておくと2進数以外の○進数に出会った時に便利かもしれません。

●2進数を10進数に

2進数を10進数にする前に、まず数というのはそもそもどのような仕組みで表されているのかを見ていきましょう。

10進数には以下のような特徴があります。
①1桁は0~9の有限の数字で表される。
②各桁は、左へ1桁進む度に10倍、右へ1桁進む度に1/10倍になる。

例えば、10進数で123.45と表される数があったとします。
この場合、分解して考えると
123.45=1×10²+2×10¹+3×10⁰+4×10⁻¹+5×10⁻² となります。

2進数は表し方こそ違うものの、数そのものが持つ数の重みは変わらないため、10^x(10のx乗)の代わりに2^x(2のx乗)で分解していけばいいことになります。

例えば、2進数で1101と表される数があったとします。
この場合、分解して考えると
1101=1×2³+1×2²+0×2¹+1×2⁰ となります。

ん??分解したけどこれって何???
と思われるかもしれませんが、この分解した式で表される数こそが私たちが普段使っている10進数と同等のものになるという事です。

つまり、
1101(2進数)=1×2³+1×2²+0×2¹+1×2⁰=8+4+0+1=13(10進数)
となるという事です。

この原理は2進数だけでなく、n進数つまり、どんな進数にも使用できますので是非覚えておいてください!

●10進数から2進数に

10進数からn進数に変換する方法として、ある法則があるので、まずは論理を抜きにして以下の法則をご覧ください。

10進数整数をX、基数をBとする
①XをBで割り、その商Sと余りAを求める
➁Sが0なら変換処理を終え、求めたAを求めた順とは逆に左から並べn進数の数を得る商Sが0でなければ、③の処理へ進む
③商Sを整数Xの新しい数とし、①の処理へ戻る
※基数というのは、2進数なら2、8進数なら8のことです。

文字だけだと正直読むのも怠いし、何言ってるのか分からないと思うので、この法則に従って実際に10進数を2進数に直していきたいと思います。

画像1


上から順に
18を2で割って、商(9)と余り(0)を出して、
次は商の9を2で割って、商(4)と余り(1)を出して、
そのまた次も商の4を2で割って、商(2)と余り(0)を出して、、、
と繰り返していって、商が0になるまで繰り返し、出てきた余りを下から順に並べると完成です。

これもまた2進数だけでなく、どんな進数にも使用できますので是非覚えておいてください!

※余談
…とここまで書いて、筆者は10進数を2進数に変換する法則がなぜ成り立つのか、気になって気になって仕方なくなりました。
数学でどんな公式も証明できるように、この法則も成り立つ理由があるはず!
そう思ったので、色々と調べてみて、分かりやすく自分の中で納得できる説明を見つけたので、こちらにも展開したいと思います。
数学があまり好きではない方、証明なんかいらないから公式さえ使えればいい、という方はこの下の文章は読み飛ばしてください。

先ほどの10進数の18を2進数に直す方法をそのまま使って説明していきたいと思います。

2進数証明

先ほどの手順を1行ずつ分けて考えると
1行目の18は、18=9×2+0…①と考えられます。
次の行の9は、9=4×2+1…➁
次の行の4は、4=2×2+0…③
次の行の2は、2=1×2+0…④
次の行の1は、1=0×2+1…⑤
と全て分解して考えられます。

次に①の18に➁の式を代入します。
すると、18=(4×2+1)×2+0=4×2²+1×2¹+0…➁′
となります。
次に代入後の式の➁′に③の式を代入します。
すると、18=(2×2+0)×2²+1×2¹+0=2×2³+0×2²+ 1×2¹+0…③′
となります。
次に代入後の式の③′に④の式を代入します。
すると、18=(1×2+0) ×2³+0×2²+ 1×2¹+0=1×2⁴+0×2³+0×2²+ 1×2¹+0×2⁰
となります。
なんと不思議なことに、10進数の18を2進数の数の重みで表すことができました!!

太字で表した数字を頭から並べると11010となり先ほどの法則を利用したときと数が一致するので、これで法則が成り立つ理由が説明できたと言えます。

今回の記事はここまで!次回もお楽しみに!!

記事タイトルとURLをコピーする
test tel test tel