コースに戻る

コンピュータとプログラミング

0% 完了
0/7 ステップ
問題 1 of 6

論理演算

半導体

現在のコンピュータのCPUには、半導体と呼ばれる物質が使われています。半導体は、電圧の大きさに応じて電流を通したり通さなかったりする性質があります。コンピュータでは、半導体の性質を利用して、電流を通さない=0、電流を通す=1の組み合わせでデータを表現するのです。この0と1の単位のことをビットと言い、ビットが8つ集まったものをバイトと言います。

論理演算

CPUの中では、2つのビットに対してAND、OR、XOR、NOTという処理(論理演算)を行う回路がそれぞれ用意されています。コンピュータが行うどんな処理も、この4つの回路の組み合わせで実現することができるのです。

コンピュータの足し算

論理演算の組み合わせで1桁の2進数の足し算を行う方法を考えてみましょう。まず人の手で足し算をしてみると、1桁目は「XOR」と同じ、2桁目は「AND」と同じになることが分かるので、AND回路とXOR回路を組み合わせれば、コンピュータにたし算をさせることができます。

このように、CPUの論理演算回路の使い方を指示し、コンピュータに計算を行わせる作業のことをプログラミングと言います。

プログラミング言語

現代のプログラミングでは、2進数やCPUの論理演算を意識する必要はほとんどなく、ただ「1+1」と書けば「2」という結果が返ってきます。これは、先人たちが、特定のルールに従って書かれた命令を論理演算に変換するツールを開発し、私たちがそれを活用しているからです。このルールやツールのことをプログラミング言語と言い、システム開発やデータ分析など、用途に応じて使いやすく開発された言語が多数存在します。

誤差

多くのプログラミング言語は10進数で命令を書くことができますが、コンピュータの内部ではそれが2進数に変換されています。この変換処理の途中で誤差が生じ、コンピュータが誤った計算結果を返すことがあります。
代表的なものに、小数の桁あふれがあります。10進数では有限小数でも、2進数にすると無限小数になる小数があり、その後に行う計算の内容によっては、10進数に戻した時に計算結果が狂ってしまいます。