【具体例あり】2進数と16進数の違い・変換方法とは?16進数は人間に優しい表記法

ネットワークやコンピュータの世界では、「2進数」「16進数」と言った独特の数値が出てきます。普段の生活で使う数(10進数)とは扱いが違うため、苦手に感じている人も多いことでしょう。でも実は、16進数はコンピュータだけでなく、人間にとっても優しい表記法なのです!今回は、2進数や16進数とは何物なのか?なぜ使用するのか?変換方法は?などを解説していきます。




コンピュータが扱うデジタルデータは0か1で表されている


博士~、なんかコンピュータの勉強をしていると、「2進数」とかってのが出てくるんですよね。
3は11だの、10は1010だの…まったく訳が分からなくて…


まぁ普段の生活ではそう使うことはないからの。混乱するのも無理はない。
とは言え、コンピュータやネットワークを深く知るためには、2進数は避けて通れぬものじゃ。


ですよね。なので放り投げてしまうわけにもいかず困ってるわけです。
そもそも、なんで普通の数字を使わないんですかね?コンピュータって計算得意なのに…


ふむ、2進数とはなにかということについて、解説するとしようかの。


ぜひよろしくお願いします!

 

2進数とは何か


まずは2進数の表記方法を説明しよう。
2進数は、数値のすべての桁を1か0かで表記するのじゃ。


1か0か…すべての桁を…


普段の生活で使っている数え方はいったん忘れ、まずはそこだけ理解しておくと良い。

  • 2進数に出てくる数字は1か0のみ
  • 1に1を足したときに桁が繰り上がる
のじゃ


10になっちゃうんですか?


ここで「10=十」と考えてはいけない。あくまで「10(イチ・ゼロ)」と理解しておくように。


1に1を足して、2になるタイミングで桁が繰り上がる。だから2進数なのじゃ。


ここで普段使っている数字と関連させながら解説しよう。
まず、2進数の1(イチ)は、1じゃ。普段使ってる1とまったく同じ意味の1である。


ここに1を足す。通常の世界ならば2じゃな。2は2進数の世界は10(イチ・ゼロ)となる。


2になるタイミングで、桁が上がったわけですね。


そのとおり、そこにさらに1を足すと?


3…ですよね。


さよう。普段の数字ではそうじゃ。2進数では、10に1を足すので、3は2進数では11(イチ・イチ)になる。


な、なるほど、11(イチ・イチ)で3か…


そこに1を足すとどうなる?


えっと…一桁目の1に1を足すから繰り上がる。あ、でも二桁目も1だからそこも繰り上がる…
だから…4は100(イチ・ゼロ・ゼロ)…ですか?


そのとおり!


そこから10まで数えると…


なるほど、だから10進数の10(十)は1010(イチ・ゼロ・イチ・ゼロ)なのか!

 

そもそも「進数(進法)」とは何か


ここでちょっと脱線するが、さっきから何度か言っている「普段の数字」は、何進数か知っているかな?


「10進数」ですよね。あんまりそういう名前では意識していないですが。


そう、正解。10進数じゃ。この「進数」じゃが、数学的には「進法」と呼ばれるもので、数値の表記方法のことじゃ。

  • 10進数は、数字を0~9で表し、10になるときに桁が繰り上がる
  • 2進数は、数字を0~1で表し、2になるときに桁が繰り上がる


そして、繰り上がった桁は、前の桁の進数倍の大きさを持つ。


進数倍の大きさ?


難しい言い回しになったが、中身は簡単じゃ。
10進数の「1」と「10」は桁違いの関係じゃが、この差は10倍じゃろ?
同じように、10と100の違いは10倍、100と1000の違いも10倍じゃ。
これを2進数で考えると 1の2倍が10、10の2倍が100、100の2倍が1000なのじゃ。


おぉ、そういうことなんですね。


普段何気なく接している10進数も、ちょっと違って見える感じがするじゃろ?


いつも無意識で扱ってますからねぇ、そう言われればそうか。みたいな。
そうすると疑問なのですが、進数って別に、10進数と2進数だけじゃなくて良いんですよね?
進数って、他にも種類はあるのですか?

 

3進数だって4進数だって7進数だってある


進数の種類など、いくらでもあるぞ。3進数だって4進数だって、7進数だってありじゃ。


え、そんな半端な数字でもありなんですね。


やってみるが良い。
先ほどの応用で、それぞれがどんなものかわかるかな?


え~っと…

3進数は、数字を0~2で表し、3になるときに桁が繰り上がる。
4進数は、数字を0~3で表し、4になるときに桁が繰り上がる。
7進数は、数字を0~6で表し、7になるときに桁が繰り上がる。
って感じでしょうか?


うむ、正解じゃ!では10進数の「20」を、3,4,7進数で表してみよ。


ええと難しいぞ…

3進数…202
4進数…110
7進数…26
か。


おぉ、合っておる。意外と優秀じゃなまきおくん


意外って…
でも考えるのも書くのもわかりにくいですねぇ。
実際、3進数とか4進数とか、使われる場面あるんですか?


うむ、まずない。


ええええええええええええ!


ちょっと数学の勉強的にやってみただけじゃ。


せっかく頑張って書いたのに…


ここでコンピュータの話に戻すぞ。

 

コンピュータは「0か1」、2進数の世界!


パソコンやネットワークで扱われるデータじゃが、最終的には0か1かで表されているのを知っているか?


えぇ!?どういうことですか?


単純なテキストから、サイズの大きな画像や映像、音声まで、ありとあらゆるコンピュータデータを細かくすると、最終的には0と1の羅列なのじゃ。


データの最小単位を0か1かの2つのみとすることで、パターンを限りなく少なくし、結果的にデータの保存性を高めているわけじゃな。
デジタルデータは劣化しないというのは、こういうところから来ておる。


ちょっと難しい話ですね。。。


とにかく、コンピュータで扱うデータは、最終的には0か1であるということだけ覚えておくが良い。


2進数は「コンピュータが理解できる表記」なんですね。


そういうことじゃ。

 

実際のプログラムでは2進数は16進数に変換して表記


そうは言ったものの、2進数を見て何か気になることはないか?


ええと、とにかく桁数が多いです…
コンピュータ的には良いかもしれませんけど、人間的にはツライですよね。読み間違えちゃいそう。


そうじゃろう。ゆえに実際にプログラミングや、機器の設定などの場面においては、2進数は使われていないことが多いのじゃ。
実際は、16進数が使われる。


16進数!?…え、でも数字って0~9までしかないのに、それらをどうやって一桁で表すんですか?


良いところに気づいたのう。そこは数字ではなく、アルファベットを使うのじゃ。

 

16進数とは何か


16進数では、0~15までを一桁で表せるよう、10~15にはそれぞれA~Fを当てはめる。

10進数の「13」は、16進数では「D」になる…ってことですか?


その通りじゃ。


これはこれでわかりにくですよねぇ。数字じゃないものが出てくるなんて。
なぜこんなものが使われるんですか?

それは、2進数からの変換の容易性にある。


変換の容易性?

 

2進数から16進数への変換方法とは


実際に変換してみよう。


10進数の「15」を表してみる

2進数…1111
16進数…F

次に10進数の「16」を表してみる

2進数…10000
16進数…10

では次、10進数の「255」じゃ

2進数…11111111
16進数…FF

では最後に、10進数の「256」はどうじゃ?

2進数…100000000
16進数…100

分かったかの?


いや全然わかりませんよ。変換大変でしたよ。


よく見てみるのじゃ。2進数と16進数は、実は非常に変換しやすいのじゃ。
2進数を4桁ずつ見てみると良い。
このように、4桁ずつ区切って変換するだけで、あら不思議、簡単に2進数と16進数の変換ができる。


あ、ホントだ!でもなぜだろう、とっても不思議。


簡単な話じゃ。16が「2の4乗」じゃからの。2進数の4桁で表せる数値が、16進数の1桁で表せる数値と同じになるのじゃ。


なるほど!そういうことですね。

 

16進数はコンピュータにも人間にもわかりやすい!


一見するとわかりにくそうな16進数が、なぜプログラミングなどで使われているのか?
コンピュータからすれば、2進数に容易に変換できる。
人からすれば、桁数を短くして見やすくできる。
16進数は、コンピュータと人間の両方にとってわかりやすい表記方法ということじゃな。


コンピュータと人の歩み寄りを感じますね。

 

なぜ人間社会では10進数が使われるのか


数字の数え方にも色々あるんですねぇ。


そうじゃな。ところでまきおくん、なぜ人は普段の生活において10進数を使うんじゃろうな?


え…?切りが良いからじゃないですか。


その「切り」がなぜ10なのか?じゃ。
コンピュータは0と1が都合が良いから2進数じゃろ?
なぜ人間は、都合がいい数字として10を選んだと思う?


おおおおお、そう言われるとなぜだろう。
なぜ10が切りが良いと思うんだろう…?


これについては諸説ある。が、有力な説としては、人の指の数じゃ。


指の数!?あ…


そう、数を数えるときの指折り数えるじゃろう?
両手の指で合計10本、それ以上になると一人では数えられん。だから10進数が馴染みやすいのだろう。と言われておる。


たしかにそれは納得感がありますね。
コンピュータは0と1の2パターンだから2進数。人は指の数が10本だから10進数。かぁ…


それぞれ、理解しやすい表現を使ってるということじゃな。


なぜ人は10進数を使うのか…まさかそんな深い話に繋がるなんて思ってもみませんでした。

 

2進数と16進数に関するまとめ


2進数と16進数が、なぜコンピュータで使われるかわかったかの?


はい!2進数はコンピュータがわかるための表現。
16進数は2進数を変換して桁を短くすることで、人が見た場合でもわかりやすくしているもの。
ですね。


うむ!まずはそこを理解していれば十分じゃ。
これらの設定や表記が具体的にどんな場面で行われているかなど、これからしっかり勉強していくように。少年よ大志を抱け!