Developer

【基本情報技術者試験】進数の概念
2022.11.29
Lv1

【基本情報技術者試験】進数の概念

基本情報技術者試験、学習初回は【基礎理論編】進数の概念について紹介します。

進数は2012年から高校の数学Aで扱われるようになっており、センター試験や共通テストでも出題されています。
また、それ以前も高校の情報の授業で扱われていたので、既に理解できている方も多いと思います。
既に理解している場合は優越感に浸りながら読んでください。


進数とは

進数はざっくりいうと『何種類の数字を使ってを表現するか』です。
『数』は量の程度を表す言葉で、『数字』はその『数』を表すのに用いる文字や記号のこと。
例えば 57,364,801,898,262 はとても大きな『数』ですが、この『数』を表現するのに使われている『数字』は「0,1,2,3,4,5,6,7,8,9」の10種類だけ。
私たちは普段、この10種類の『数字』を使って様々な『数』を表現しています。
この表現形式を『十進法』といい、『十進法』で表現された数を『10進数』といいます。

私たちは当たり前のように『10進数』を使いこなしています。
だから今更『10進数』を学ぶ必要はありません。
ただ残念なことに、『10進数』だけしか使いこなせないような人間にはコンピュータを理解することができません。
実はコンピュータの内部では、『2進数』を使って数を表現しているのです。
コンピュータ的には『2進数』の方が好都合なのです。(細かい理由が気になる方は調べてみてください)
冒頭で「情報の授業で扱われていた」と記載しましたが、情報ってパソコンの授業でしたよね?
そういうことです。

というわけで『2進数』について学ぶ必要があるのですが、その前に改めて『10進数』について考えてみましょう。

10進数について

1桁の『10進数』で表すことのできる最大の『数』は 9 であり、この次の数(9に1を加えた数)は 10 という2桁の『10進数』で表されます。
これはどういう仕組みなんでしょうか?

9 という『数』は1桁ですが、その前(十の位、百の位、千の位、・・・)に無限に 0 が並んでいると思ってください。
つまり …00000009 です。
『10進数』では 9 が最大の『数字』であるため、一の位をイジるだけではこれより大きい『数』を表現することができません。
よって9に1を加えようとすると、十の位に頼らざるを得なくなり、十の位の『数字』が1つ大きいもの(今回の場合は0⇒1)になります。
そして一の位は最小の『数字』である0にリセットされます。

あまり意識してこなかったことかもしれませんが、『10進数』ではこのようにして 9 の次の数を 10 と表現しているのです。

2進数について

『2進数』も仕組みは同じで、使用する『数字』の種類が減るだけです。
『2進数』で使える『数字』は0と1の2種類のみ
0と1だけで様々な『数』を表現するのです。

『2進数』で表すことのできる最小の自然数(正の整数)は 1 です。
これは『10進数』の 1 と同じ『数』を表します。(『2進数』の 0 と『10進数』の 0 も同じ『数』です。)
ではこの次の『数』はどうなるでしょうか?
『10進数』では 2 という『数字』が使えたのですが、『2進数』では 2 が使えません
『2進数』では 1 が最大の『数字』であるため、この次の数を表すためには桁を増やすことになります。

つまり、『2進数』では 1 の次の数は 10 ということになります。
その次の数は 11(10進数では3)で、その次はさらに桁が増えて 100(10進数では4)になります。
その後 101,110,111,1000,… といったように『数』が増えていきます。
慣れていない方には違和感があると思いますが、これが『2進数』です。

その他の進数について

ほとんどの方が感じていることだと思いますが、『2進数』では『数』が大きくなると桁が長くなりすぎてしまいます。
それでは面倒なので、人間が考える場合は『2進数』と相性の良い『8進数』や『16進数』に変換することもあります。
なぜ相性が良いのかは下の進数対応表を見ていただければなんとなくわかると思います。

『8進数』は 0,1,2,3,4,5,6,7 の8種類の数字を使用します。
『16進数』は 0~9 の10種類に加え、A,B,C,D,E,Fという6つのアルファベットを使用し、16種類の『数字』としています。
『8進数』の 10 は『2進数』の1000で、『16進数』の 10 は『2進数』の 10000 です。
これはたまたまではなく、2の3乗が8、2の4乗が16であるためです。

進数の概念については以上となります。
次回の記事で変換の方法などを記載していますので、まずは『進数とは何か?』をしっかり理解してから先に進みましょう。


まとめ

  • コンピュータの内部では2進数が使われている
  • 2進数は0と1だけで『数』を表現している
  • 8進数や16進数に変換して考えることもある

演習問題

1.『5進数』の 10 を『10進数』で表すとどうなりますか?

A.5
B.6
C.10

2. 2桁の『16進数』で表すことのできる数(1桁だけで表すことのできる数も含む)は何通りありますか?

A.32
B.255
C.256

演習問題の解答は次回の記事で