あなたは、「0100」と書いてあるのを見たら、99の次のヒャクだとわかります。
でも、もし「0100」を3の次のヨンだと言い張る人がいたら、おかしいと感じますよね。
コンピューターの仕組みを教えようとする人は「0100」をヨンだと言います。ほとんどの人は、何度説明されても、「0100」はヒャクとしか思えないので、コンピューターの世界は難しすぎると感じてしまいます。
2進法はなじめない
どうしても、「0100」がヨンだと言われてもヒャクにしか思えないのは、あなたが10進法で考えているからです。あなたの数え方は、0、1、2、3…8、9ときて、次が10という2桁になるので、10進法と呼ばれます。その考え方で行くと、97、98、99の次が100になります。
コンピューターは、0の次が1、その次が10という2桁になるので、2進法を使っています。その考えで行くと、0010、0011の次が0100になります。
でも、どうしても、2進法はなじめません。身の回りに2進法で扱うものが見当たらないからです。
コンピューターの仕組みの話になると、なじめない2進法のことが長々と扱われるので、心の耳が閉じてしまいます。
2種類しかないものをつなげていくとたくさんの種類になる
2進法はなじめないとしても、2種類しかないものをつなげると、たくさんの種類が生まれることは知っておきましょう。
2種類のビーズを使っているところをイメージしてください。ビーズは🔴(赤)と🟡(黄色)の2種類です。このビーズでネイルアートをしてみましょう。指1本につき、1つというルールにしておきます。
ためしに右手小指だけにビーズを付けます。どちらの色がいいですか。🔴と🟡の2通りです。かわいく付けられました。
今度は、右手小指と薬指に付けてみましょう。小指と薬指にそれぞれ1つなので、ビーズは、2つ使います。どういう組み合わせがいいですか。組み合わせを書き出してみます。

使うビーズは2つですが、4つの組み合わせができます。かわいい組み合わせが選べましたか。
今度は、人差し指と中指も付けてみましょう。使うビーズは4つです。どういう組み合わせができるか書き出します。

4つのビーズで16通りの組み合わせになります。
右手だけでなく、左手の人差し指から小指まで全部で8つのビーズを使うと、なんと256通りにもなります。
表にすると次のようになります。途中かなり省略しました。

注目してほしいのは、🔴か🟡の2種類なのに、8つつなげると256通りにもなることです。
ビーズを付けるのを、コンピューターにやってもらうとどうなるでしょうか。コンピューターは、2種類の信号しか扱えません。🔴か🟡のどちらかを付ける信号だけです。
ワンポイント-真偽値って何?
コンピューターが扱う電気信号は、電圧が高いか低いかです。仕組みを単純化するために中間は細かく調べません。
電気信号の電圧が高いことをTrue(真)、低いことをFalse(偽)と表現します。この2種類しかないので、真偽値といいます。
でも、TrueもFalseも、見えない電気信号を人間にわかるように表現しただけなので、Falseが続いたとしても、ニセ情報が送られたわけではありません。
コンピューターは、いい加減なことはできません。256通りを1つも間違えないで扱えます。
コンピューターは、電気信号を8つまとめて扱うことが多くあります。
人間にわかる数値にする
コンピューターの中では、🔴か🟡のような2種類の電気信号を扱っています。でも、電気信号の1つ1つは人間にはわかりにくいものです。
例えば、8つひとまとめの🔴🔴🟡🔴🔴🔴🟡🔴と🔴🟡🔴🔴🔴🟡🔴🔴は、うっかりすると間違えてしまうかもしれません。どうすれば、人間にわかりやすくなるでしょうか。
人間にわかりやすくするには、上の表のように、並び順に№(ナンバー)を付けます。
№なら、🔴🔴🟡🔴🔴🔴🟡🔴 は34で、🔴🟡🔴🔴🔴🟡🔴🔴は68ですから、違いがはっきりわかります。
コンピューターは、人間とやり取りする時は、上の表のようなものを使って、数値を電気信号に置き換えたり、逆に電気信号を数値に置き換えたりします。
ワンポイント-255?256じゃないの?
1から数えると、256ですが、0を考えておいた方が何かと便利です。それで、0から255になります。
さらに、マイナスの数も扱いたい時もあります。その時はー128から127までになります。
2種類の電気信号を8つまとめると、256通りの数が扱えます。
ビットとバイト
コンピューターの扱う電気信号はビット(bit)という単位を使います。
昔のコンピューターは、8つの電気信号をひとまとまりとして扱える8ビットコンピューターでした。いろいろ工夫しないと256以上の数は扱えませんでした。
今では、128ビットをひとまとまりとして扱うことも難しくありません。ビーズ128個が1列に並んだところを思い浮かべてください。🔴か🟡の2種類ですが、とても多くの並び順があります。その並び順を今のコンピューターは間違えないで区別できます。それで、とても大きい数値やとても細かい数値が簡単に扱えるようになりました。大きい数値が扱えるので、物事を細かく分類できるようにもなりました。例えば、自然の色や世界中の文字などです。
電気信号は、1ビットでも不確かだと数値がまったく違ってきます。電気信号の正確さは、特に通信で大切です。コンピューター同士や、コンピューターと他の機器とのやり取りです。bps(bit per second:ビット毎秒)は、1秒間に何ビットの電気信号を正確にやり取りできるか、通信速度の単位です。
コンピューターは、8ビットまとめて電気信号を扱うことがとても多いです。バイト(byte)は、8ビットひとまとまりの電気信号の単位です。1バイトで256通りの電気信号になります。バイトという単位は、メモリなどの容量を表すのに使われます。
ビットは川の流れる早さで、バイトは湖の水の量というイメージだと覚えやすいでしょう。
ワンポイント-キロ、メガ、ギガ、テラは正確にはいくつ?
日本では、万、億、兆のように4桁で数字を区切ります。欧米では、1,000,000のように3桁で区切ります。
重さや破壊力の単位でt(トン)があります。1000tは1kt(キロトン)、1000ktは1Mt(メガトン)、1000Mtは1Gt(ギガトン)、1000Gtは1Tt(テラトン)となります。
コンピューターの容量の単位バイトは、1000バイトで1KB(キロバイト)になるでしょうか。大体そう考えても間違いではありません。正確には、256の4倍の1024が1000に近いので、
1024バイトは1KB(キロバイト)、
1024KBは1MB(メガバイト)、
1024MBは1GB(ギガバイト)、
1024GBは1TB(テラバイト)
となります。
もう1度「0100」を考える
もう1度「0100」を考えてみましょう。
今まで、電気信号を🔴と🟡の2種類のビーズで説明してきました。色を塗りつぶせない時ももあるので、これを0と1で書いてみることにします。🔴が0、🟡が1です。表を書き直すと次のようになります。

この表をみると、3は0011、4は0100になります。コンピューターの仕組みを教えようとする人は、これを使って、「0100」を4だと説明しようとします。
ある人は、2進法をすぐに理解し、8進法や16進法というコンピューターでとてもよく使われる計算法に興味を持つかもしれません。
あなたは、ビーズの説明があったから「0100」を4だと言い張る人の考えが何となくわかったかもしれません。
別の人は、ビーズの説明と数値化が結びつかないかもしれません。人それぞれ感じ方や考え方があります。
どの段階の人も、次のことは知っておいてください。
- コンピューターが扱っている電気信号は2種類しかない。
- 2種類の電気信号を順番につなげるとたくさんの種類になる。8つつなげると256通りになる。
- それぞれの種類に№をつけると数値化できる。