コンピュータの世界では、2進数をよく利用しますが、その2進数とは何なのか?ということについて簡単に説明したいと思います。
まず、我々が普段使っている1,2,3,4・・・・という数は10進数という数です。そしてコンピュータで使われている2進数というのは、0,1,10,11・・・・といった感じで、0と1だけを用いて数を表現します。
なぜそのようなことをするかというと、我々が10進数を使っているのと同じ理由です。我々は指が10本あるから10進法を使っています。それと同じように、コンピュータの内部の処理を電気的なスイッチのオンオフの2通りで行っているから、コンピュータでは2進数が使われています。
時間の世界では60進数が使われていますね。2進数が0と1の2種類の数を用いてあらわすのに対し、時間は0から59までの60種類の数を用いて表します。
一見面倒なようにも見えますが、10進数を使うよりも大量のデータを扱いやすいというメリットがあります。指で考えてみてください。我々が普段使っている10進数では、片手では5までを数えることができます。それに対して、スイッチのオンオフを指の曲げ伸ばしに見立てて考えると、親指が曲がっている場合/伸びている場合、人差し指が曲がっている場合/伸びている場合といった具合に5本の指それぞれに2通りずつの組み合わせがあることになりますので、2の5乗、つまり32通りの組み合わせをあらわすことができるというわけです。
人間からしたらややこしいかもしれませんが、2通りの組み合わせを複数用いてあらわすというのは、単純な計算を高速にこなすことが得意なコンピュータに向いているといえるのかもしれません。
10進数と2進数の変換
たとえば10進数で1234という数を表した場合、10の3乗=1000の塊が1つ、10の2乗=100の塊が2つ、10の塊が3つ、1の塊が4つといった具合に、つまり1000+200+30+4になります。10進数だから10の何乗というのを基準に桁が決まっています。それに対して2進数の桁は2の何乗というのが基準です。だから、10進数における1234を2進数に直そうとしたら、2の何乗の塊がいくつで、といった具合に変換します。2進数を10進数に直すときも同様です。
ではためしにここで1234を2進数に直してみましょう。1234=1024+128+64+16+2=2の10乗+2の7乗+2の6乗+2の4乗+2の1乗になります。なので、2進数であらわすと
1←1024の塊が1つ
0←512の塊が0個
0←256の塊が0個
1←128の塊が1つ
1←64の塊が1つ
0←32の塊が0個
1←16の塊が1つ
0←8の塊が0個
0←4の塊が0個
1←2の塊が1つ
0←1の塊が0個
つまり、10011010010になります。
10進数が10(=10の1乗)の位、100(=10の2乗)の位 を基準にあらわすが、2進数では2の位、4の位・・・・を用いて数を表現する。これさえわかれば、2進数の概念が少しはお分かりいただけたかと思います。
まず、我々が普段使っている1,2,3,4・・・・という数は10進数という数です。そしてコンピュータで使われている2進数というのは、0,1,10,11・・・・といった感じで、0と1だけを用いて数を表現します。
なぜそのようなことをするかというと、我々が10進数を使っているのと同じ理由です。我々は指が10本あるから10進法を使っています。それと同じように、コンピュータの内部の処理を電気的なスイッチのオンオフの2通りで行っているから、コンピュータでは2進数が使われています。
時間の世界では60進数が使われていますね。2進数が0と1の2種類の数を用いてあらわすのに対し、時間は0から59までの60種類の数を用いて表します。
一見面倒なようにも見えますが、10進数を使うよりも大量のデータを扱いやすいというメリットがあります。指で考えてみてください。我々が普段使っている10進数では、片手では5までを数えることができます。それに対して、スイッチのオンオフを指の曲げ伸ばしに見立てて考えると、親指が曲がっている場合/伸びている場合、人差し指が曲がっている場合/伸びている場合といった具合に5本の指それぞれに2通りずつの組み合わせがあることになりますので、2の5乗、つまり32通りの組み合わせをあらわすことができるというわけです。
人間からしたらややこしいかもしれませんが、2通りの組み合わせを複数用いてあらわすというのは、単純な計算を高速にこなすことが得意なコンピュータに向いているといえるのかもしれません。
10進数と2進数の変換
たとえば10進数で1234という数を表した場合、10の3乗=1000の塊が1つ、10の2乗=100の塊が2つ、10の塊が3つ、1の塊が4つといった具合に、つまり1000+200+30+4になります。10進数だから10の何乗というのを基準に桁が決まっています。それに対して2進数の桁は2の何乗というのが基準です。だから、10進数における1234を2進数に直そうとしたら、2の何乗の塊がいくつで、といった具合に変換します。2進数を10進数に直すときも同様です。
ではためしにここで1234を2進数に直してみましょう。1234=1024+128+64+16+2=2の10乗+2の7乗+2の6乗+2の4乗+2の1乗になります。なので、2進数であらわすと
1←1024の塊が1つ
0←512の塊が0個
0←256の塊が0個
1←128の塊が1つ
1←64の塊が1つ
0←32の塊が0個
1←16の塊が1つ
0←8の塊が0個
0←4の塊が0個
1←2の塊が1つ
0←1の塊が0個
つまり、10011010010になります。
10進数が10(=10の1乗)の位、100(=10の2乗)の位 を基準にあらわすが、2進数では2の位、4の位・・・・を用いて数を表現する。これさえわかれば、2進数の概念が少しはお分かりいただけたかと思います。