第7回(最終回) パソコンはどうやって計算をしているのかな?その中身を学ぼう!

第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

このように、パソコンはすべての情報を、プログラムを通して二進数に変換して理解し、そして計算して、結果をまた人間に分かるように変換して、出力しているのです。これで、「パソコンの仕組み」の内容はすべて終わりです。普段何気なく使っているパソコンも、実は色々な部品と働きによって動いているのが分かったと思います。もし、もっとこの部分が知りたい!調べたい!ということがあったら、ぜひ、おうちの方とインターネットなどで調べてみてくださいね!

ナビ
ねぇ、はかせ、パソコンの中は、とってもたくさんの部品とプログラムの集まりなんだにゃ!
はかせ
そうじゃ。
この部品やプログラムにもさらに種類があるんだから、パソコンってすごいんじゃぞ。
ナビ
これでパソコンにとっても詳しくなれたにゃ!