lisz-works

技術系だけど関係ないこと多い系ブログ

【プログラム基礎】2進数、8進数、16進数とは?

【スポンサーリンク】

プログラムのソースコード

プログラムの基礎で出てくる、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進数対応表を作ってみました。

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まで覚えていれば、大概何とかなりますよ!