第1話 n進数とは?
10進数は、皆さんが普通に使っている数で、
10ごとに位の上がっていく数です。
10ごとに位の上がっていく方法を10進法ともいいます。
10進法では、
0,1,2,3,4,5,6,7,8,9
の10種類の数字を使います。
コンピュータは、0と1の2進法(2進数)を使って処理をしています。
Goole傘下のディープマインドが開発した「アルファ碁」が、
現時点(2016/03/11)で世界一の一人とされる韓国のトッププロのイ・セドルに、
2連勝していますが、
アルファ碁も0と1だけで局面を処理しているわけです。
コンピュータは電気のon-offで処理するので、
2進法が最もコンピュータに適しているわけです。
使っている数字は0と1のみですし、、
原理はand原理とor原理のみです。
たった2つの数字とたった2つの原理で、
最も複雑なゲームであるとされる碁で世界一のトッププロが、
圧倒されるまで強くなったのです。
and原理とor原理については、後の講で解説します。
では、2進数とは具体的にはどういう数でしょうか。
10進数の
1,2,3,4,5,6,7,8,9,10,11,・・・
に対応する2進数を書いてみると、
1,10,11,100,101,110,111,1000,1001,1010,1011,・・・
です。
何進法で書いてあるのかを()内の数字で表すことになっていますから、
11(10)=1011(2)
というわけです。
3進数は、0,1,2の3つの数字を使い3つごとに位が上がっていきます。
同じく10進数の
1,2,3,4,5,6,7,8,9,10,11,・・・
に対応する3進数を書いてみると、
1,2,10,11,12,100,101,102,110,111,112,・・・
となります。
例の表記を使うと、
11(10)=112(3)
です。
同様に、6進数なら0,1,2,3,4,5の6種類の数字を使い、
6ごとにくらいが上がっていきます。
10進数の
1,2,3,4,5,6,7,8,9,10,11,・・・
に対応する6進数は、
1,2,3,4,5,10,11,12,13,14,15,・・・
となります。
11(10)=15(6)
尚、1011(2)は「いちぜろいちいち」と読みます。
3進数や4進数でも同様です。
では、
10進数を2進数などに翻訳するにはどうしたらよいのでしょうか。