人間は数値を扱う場合に、指の数と同じ十進法を使っています。
コンピュータは内部で二進法を使い、全てを二進数で表現します。
彼らは指がありません、代わりに電子を使って数を数えます。

このエントリーをはてなブックマークに追加

最初に/ n 進数 と n 進法

n 進は 0 〜 n 迄の数字を符号として扱う数字表記のことです。

n 進は桁(ケタ/digit/単位の切り替わり)の上がる数を示しています。

例えば時計は 12 進法、時・分・秒は 60 進法※ ただし符号については 0 〜 11 ではなく、慣例に従い時計は 1 〜 12 、時・分・秒は 1 〜 60 が符号として利用されます。

十進法を考えた場合、十は桁が上がる数を指す。符号は 0 〜 9 迄の十種類の数字を利用します。書きだしてみると

 0, 1, 2, 3, 4, 5, 6, 7, 8, 9;
10,11,12,13,14,15,16,17,18,19;

こうすれば分かると思いますが、確かに10で桁が上がってます。上記は十進法の十進数。じゃあ二進法で二進数はどうなる?

[column width=”48%” spacing=”4%”]

 0, 1;
 2, 3;
 4, 5;
 6, 7;
 8, 9;
10,11;

[/column][end-columns]

これは二進数を知らない人に試したら出てきた間違った回答例。でも面白かったので載せます。十進数を使って改行しただけでは二進数とはなりません。

まず一番肝心な 2 で桁が上がってません。そして二進数は 0 と 1 だけで表現されます。

[column width=”48%” spacing=”4%”]正解

   0,    1;
  10,   11;
 100,  101;
 110,  111;
1000, 1001;
1010, 1011;

[/column][column width=”48%”]不正解

 0, 1;
 2, 3;
 4, 5;
 6, 7;
 8, 9;
10,11;

[/column]
[end-columns]

二進法は必ず 2 の累乗で桁が上がる、そして符号は 0 と 1 (二つの符号)だけで表現するという縛り。

つまり二進数では 2 == 10 となります。

参考 (YoYoGames):An introduction to Binary

引用ココから

000 = 0
001 = 1
010 = 2
100 = 4

In binary land, 10 really does equal 2!

引用ココまで

しかしここで素朴な疑問、なぜわざわざ二進数でやる?

人間様が十進数で普段扱っている数値をこんなふざけたもの(二進数)で全部表現できるの?

まだコンピュータ未満だった初期の電子計算機時代には、実際に十進数を採用した計算機もありました。

参考 (Hatena::ブログ):なぜコンピューターは2進法で、人間はそうでないのか

参考(塾講師ステーション情報局):小学生にn進法を分かりやすく説明しよう!

なぜ二進数なのかへ進む ≫

Leave a Reply

Your email address will not be published. Required fields are marked *