プログラムの基礎で出てくる、N進数……
2進数と8進数、16進数の解説です。
N進数表現とは?
ぼくたちが普段使っているのは「10進数」という表現方法です。
小学生の頃から
「1から9、その次は10」
と自然に教わっていますが、これはそういう表現方法なのです。
なので当たり前のように「9の次は?」と聞けば「10」と答えますよね。
それを違う表現方法をしたのが、2進数や8進数、16進数です。
ちなみにプログラムでのこれらの使用頻度的には
- ちなみに8進数はあまり使わない
- 16進数はクソほど使う
- 2進数は特定のシーンで使用する
といった感じです。
作るものや業種によって少し変わってくると思いますが。
8進数とは?
「8で繰り上がる数」のことです。
10進数同様、0~7まで進みます。
「7の次は?」
「10」です。
8で繰り上がるから8進数です。
なので
8(10進数)=10(8進数)
となります。
16進数とは?
これも同様に「16で繰り上がる数」のことです。
ただし数字は0~9までしか表現できませんよね?
なので16進数では、0~9,A~Fを使用します。
Aが10進数の10となり、Bは11、Cは12、DEF……と続きます。
察しの言い方はわかるかもしれませんが、16進数の場合、Fの次が10となります。
2進数とは?
他と同じですね。「2で繰り上がる数」のことです。
なので、0と1しか使いません。
コンピュータの内部の内部は電気信号のON/OFFなので、これで全てができています。
ビットってやつですね。
2(10進数)で、10(2進数)です。
簡単な対応表
簡単なN進数対応表を作ってみました。
時計に当てはめて考えてみれば楽
どうでしょうか?
わかりましたか?
ややこしいですか?
それならば、時計で考えてみてください。
時計の数字が書いてあるところだけを使うと、「12進数」です。
長針が12までいくと、1時間繰り上がります。
同じように8までしかない時計、16までしかない時計を想像してみてください。
……そう考えると少し簡単になりませんか?
2進数なら手で数えられる
ちなみにですが、2進数は小さい数なら手で数えられます。
右手でパーを作った状態が「0」とします。
- 1で親指を折ります。
- 2で人差し指を立て、親指を戻します。
- 3でまた親指を折り、人差し指・親指が折られた状態。
- 4で中指が折り、人差し指・親指は立てます。
こんな感じでやっていくと、
- 折っているところ=1
- 経っているところ=0
で2進数のできあがり!
あとがき
いかがでしたでしょうか?
知っていると大したことないんですが、知らないとわけわからないのがN進数表現ですね。
基礎的なことなので(8進数はともかく)2進数と16進数は覚えておきましょう。
16進数はA-Fの対応を覚えておくと、今後色々と楽なケースがあるかもしれません!
2進数も15まで覚えていれば、大概何とかなりますよ!