高等学校 情報Iの要点 コンピュータとプログラミング前編 #4

リュディアです。高等学校 情報Iの要点 コンピュータとプログラミング前編 をまとめていきます。

高等学校 情報Iの要点 コンピュータとプログラミング前編のまとめへのリンクをまとめておきます。

今回はコンピュータ内部で算術演算がどのように扱われているか見てみます。内部で行われている論理演算はコンピュータにとっては都合が良いのですが、人間にとっては扱いづらいです。少なくとも我々が普通に生活している世界では算術演算が必要です。今回は例として加算、つまり足し算について見てみます。

コンピュータ内部では0 または 1 のみの二進数で数が表現されています。では二進数の加算とはどのようなものなのでしょうか。加算の記号は + を使います。

0 + 0 = 0
0 + 1 = 1
1 + 0 = 1

ここまではいいですね。問題は次の 1 + 1 です。普段、私たちが生きている世界では 2 になるのですが、コンピュータ内部には 0 と 1 しかないわけです。2 はどのように表現すればよいでしょうか?正解は 10 です。ひとつ上位の桁に桁上げが発生します。二進数の世界で数え上げを行うと以下のようになります。

0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111, 10000...

一度、自分で紙に書いてみると理解しやすいので、ぜひ二進数で数え上げをしみてください。

では話を戻して再度、二進数の加算が以下のようになるところからスタートします。

0 + 0 =   0
0 + 1 =   1
1 + 0 =   1
1 + 1 + 10

二進数の加算と前回の論理演算を比べてみると論理演算 or に近い感じがしますが、1 + 1 の結果だけ合わないですね。

画像1

そこで、not, and, or を組合せて以下のような仕組みを用意します。

画像2

入力がA, B で出力が 2つあります。1つは Sum と呼ばれるもの、もう一つは Carry と呼ばれるものです。2進数の加算の1桁目を Sum、2桁目を Carry とすることで not, or, and を組み合わせて加算結果を求めることが可能となります。このような構成を半加算器と呼びます。

つまり論理演算をそのまま使うだけでは、私たちが普段使っている四則演算を表現することはできず、論理演算を組み合わせることで私たちが日常で使う計算結果を得ることができるわけです。

今回は簡単な加算についてのみまとめましたが、減算、乗算、除算もコンピュータ内部で論理演算を組み合わせることで実現しています。

昔は、このような加算回路や演算回路を意識してプログラミングする時代もありましたが、今のプログラミング言語ではこのような回路を意識することはありません。ただ知識としては、コンピュータ内部では二進数で演算が行われていること、二進数の演算の基本は論理演算であり、論理演算を組み合わせてさまざまな演算が行われているということは知識としてしっておいてください。

高等学校 情報Iの要点 コンピュータとプログラミング前編 に関するまとめの続きは以下からどうぞ。

では、ごきげんよう。


この記事が気に入ったらサポートをしてみませんか?