06 9月 第7回(最終回) パソコンはどうやって計算をしているのかな?その中身を学ぼう!
にゃんで「0」と「1」の数字で計算ができるのか不思議だにゃ。
計算をする小さな部品の集まり
パソコンはたくさんの部品(ハードウェア)の集まりで、それらが計算をする、データを記憶するなど、それぞれの役割の仕事をし、お互いでデータをやり取りすることによって便利に使えることを学びました。
では、いったいパソコンはどのように計算をしているのでしょうか?
パソコンが動く仕組みの最終回は、パソコンが中でどうやって計算をしているのかを説明したいと思います。
パソコンの中で、実際に計算をしているところは「CPU」です。このCPUは、いったいどのようにして、人間が入力したデータを計算し、その結果を出力しているのでしょうか?
じつは、「CPU」自体も「小さな部品のあつまり」なのです。CPUだけでなく、マザーボードやメモリなども、「小さな部品のあつまり」です。この小さな部品一つ一つが、実際に計算をしたりしているのです。
この小さな部品のひとつに「IC(アイシー)」と呼ばれるものがあります。このICは、「計算をする回路のあつまり」で、このICの中には、「トランジスタ」と呼ばれる、実際に計算をしてくれるものがたくさん入っています。
このトランジスタは、電気が流れない(OFF)・流れる(ON)をコントロールし、流れない時を「0」、流れる時を「1」として、それをたくさんの回路の組み合わせで行うことによって、計算をするのです。
これまで読んできた方は、「あっ!機械語だ!」とピンときたかもしれませんね!そう、パソコンが命令を理解するためには、このトランジスタの「ON」と「OFF」を示さなければ計算できません。そのため、「0」と「1」の機械語で表してあげる必要があるのです。
機械語「二進数」に翻訳
では、どうやってパソコンは私たちの与えた仕事を「0」と「1」にできるのでしょうか?その役割をするのが「プログラム」です。
以前、ソフトウェアは「プログラム」の集まりであることを説明しました。プログラムにもたくさん役割があり、ソフトウェアが、人間がパソコンで実際に仕事ができるためのプログラムであれば、「そのプログラムを機械語に翻訳してくれるプログラム」もあるのです。ソフトウェアが、この「機械語への翻訳プログラム」を使うことによって、私たちの仕事が機械語に翻訳され、パソコンが計算してくれるのです。そしてこの逆もあり、機械語をソフトウェアや私たちがわかるように翻訳してくれるプログラムもあるのです。
では、「0」と「1」で、何がどのように表されるのでしょうか?
パソコンの計算の世界では、「0」と「1」のみで、「2」以上の数字はありません。そのため、「0」→「1」とすすんだら、次は「10」とけたがあがります。この時も2以上の数字はパソコンの世界にないので「じゅう」とは読まず、「いち・ぜろ」と読みます。パソコンの世界での「10」は、私たちの世界だと「2」になります。
この「0」と「1」という2つの数字で表される数を「二進数」と言います。私たちが普段使う数字は「十進数」で、0から9までの10個の数字で表します。
そのため、私たちの十進数は、パソコンの世界の二進数で次のように表されます。
十進数 | 二進数 |
---|---|
0 | 0 |
1 | 1 |
2 | 10 |
3 | 11 |
4 | 100 |
十進数 | 二進数 |
---|---|
5 | 101 |
6 | 110 |
7 | 111 |
8 | 1000 |
9 | 1001 |
次に文字です。パソコンの画面にうつしだされる文字は、すべて「ルール」に従って出力されます。このルールは「文字コード」と呼ばれ、この数字はこの文字に置き換えなさい、というルールです。文字コードには「ASCII(アスキー)コード」と呼ばれるアルファベットや数字、記号をあらわすものや、日本語(ひらがなやカタカナ、漢字)を含む「Shift JIS(シフトジフ)コード」「Unicode(ユニコード)」などがあります。
ASCIIコードは十進数で、Shift JISコードは16進数で表され、パソコンはそれぞれをまた二進数に翻訳して理解します。(16進数は、0から9までの数字と、AからFまでのアルファベットの計16個の数字文字で表したものです。)
たとえば、アルファベットの大文字「A」から「E」をASCIIコードで、日本語の「あ」から「お」までをShift JISコードで表すと次のようになります。
文字 | ASCIIコード(十進数) | 二進数 |
---|---|---|
A | 65 | 1000001 |
B | 66 | 1000010 |
C | 67 | 1000011 |
D | 68 | 1000100 |
E | 69 | 1000101 |
文字 | Shift JISコード(16進数) | 二進数 |
---|---|---|
あ | 82A0 | 1000 0010 1010 0000 |
い | 82A1 | 1000 0010 1010 0001 |
う | 82A2 | 1000 0010 1010 0010 |
え | 82A3 | 1000 0010 1010 0011 |
お | 82A4 | 1000 0010 1010 0100 |
最後に「色」です。
パソコンの画面は、「画素」と呼ばれる、とっても小さなタイルの集まりでできています。このタイル1つ1つが、「赤」と「緑」と「青」の3色の光を出すことができ、一般的なモニタはそれぞれ「256」段階で、これらの光を出すことができます。この「色」と「段階」で、たくさんの色を画面に出すことができるのですが、この色と段階も、数字で表すことで、パソコンは「あ、この色を出すんだな」ということが理解できます。この色と段階も16進数で表され、パソコンはそれが二進数に翻訳されたもので理解します。
色 | 色を表す16進数 | 二進数 | ||
---|---|---|---|---|
赤 | 緑 | 青 | ||
白 | FF | FF | FF | 11111111 11111111 11111111 |
赤 | FF | 00 | 00 | 11111111 00000000 00000000 |
緑 | 00 | FF | 00 | 00000000 11111111 00000000 |
青 | 00 | 00 | FF | 00000000 00000000 11111111 |
黄 | FF | FF | 00 | 11111111 11111111 00000000 |
黒 | FF | FF | FF | 11111111 11111111 11111111 |
このように、パソコンはすべての情報を、プログラムを通して二進数に変換して理解し、そして計算して、結果をまた人間に分かるように変換して、出力しているのです。これで、「パソコンの仕組み」の内容はすべて終わりです。普段何気なく使っているパソコンも、実は色々な部品と働きによって動いているのが分かったと思います。もし、もっとこの部分が知りたい!調べたい!ということがあったら、ぜひ、おうちの方とインターネットなどで調べてみてくださいね!
この部品やプログラムにもさらに種類があるんだから、パソコンってすごいんじゃぞ。