おしえて№222 投稿者 羽丘真琴さん
パソコンの頭脳のCPUは駆動部分もないのに、電気を流すだけでなぜ複雑な計算が出来るのでしょうか?(各種プログラムも計算とみなす)
ともたんさん

どんな複雑な数式もパソコン内では2進数(電気があるかないか)で計算をします。  ■簡単な例■
 人間の認識・・・2+3=5
 パソコン内では・0010+0011=0101

 ここで“0”は電気無し、“1”は電気有りとしましょう。(全然簡単にならない!!)パソコン内では4桁の電気有り無しで15まで表す事が出来るのです。長くなるので1〜8迄を2進数で表してみますね。0001,0010,0011,0100,0101,0110,0111,1000となります。
ちなみに現在主流のパソコンでは1回で32桁の処理を行い、それを1秒間に4億回(400MHzの場合)処理できるのでいとも簡単に計算してるように見えるのです。(答えになったかな?)

凪 ようかさん

賢いから^^;
CPUは基本的にいかなる計算も和、つまり足し算のみで行っています。本来引き算になるべきモノも足し算に変換しているのです。(実際は2進数で行われるので補数という変換をします)12から6を引くというような場合は、12+(-6)つまり12に-6を足す、と言う解釈になるんです。だから一見激しく複雑な計算も変換を重ねると足し算の集まりになるんですよ。コンピュータには「加算機」というモノがあって足し算の計算ができるようになっています。
————え?掛け算や割り算はどうなんだって?そりゃもちろんその回数だけ足し続けるに決まっているじゃないですか♪

iammyさん

どんな計算もAND/OR/NOT等の簡単な処理が基本で,それを複雑怪奇に組合せ凄まじいスピードで行うのがCPUです。
AND/OR/NOT処理については豆電球を用いた説明が下記HPに出ています。
参考URL:Web KANZAKI
http://www.kanzaki.com/bmac/9607.html

もちろん豆電球のスイッチを動かす様に動作するパーツはCPUには含まれておらず、同じ働きを半導体を用いて行っています。

Tsuneさん

それは2進法による、「0」と「1」を巧みに用いているからなんです。それで、電気の通じているほうを「HIレベル」、通じていないほう「LOレベル」として、それを1と0に置き換えて演算を行っているのです。 ですから、そろばんのような、駆動部分も無く、正確にかつ高速に演算処理を行うことが出来るのです。
 その切り替え速度をどれだけ早く行うことが出来るかで、演算速度に差が出て、それがCPUの性能ということになります。クロック周波数というのがそれで、いまや、800MHzとか、もう電波の領域を越えるような周波数になっています。(10数年前には、8MHzとか10MHzが標準で、12MHzは早い方で、その機種を会社で購入できて喜んでいた時代が有った事をなつかしく思い出します。) ちなみに8ビット、16ビット、32ビット、64ビットなどは同時に上記演算をいくつ出来るかの目安になるもので、当然、数値が大きいほど高性能ということになります。

くろぅさん

電卓も含めて、すべてパソコンの機能は1と0(+と−)の組み合わせによって演算処理をされるからと理解すれば良いと思います。

とっちんさん

CPUに限らず人間の頭だって駆動部分なんかありゃしない!まっ、もっとも人間の場合計算が得意な人ばかりじゃないけどね。

よりかさん

理系の計算好きの人がつくったからです。(親によく似ているんですね)

★,。・:*:・゜☆★,。・:*:・゜☆★,。・:*:・゜☆★,。・:*:・゜☆
そうか〜 じゃあパソコンを親代わりにしたほうがいいかも。(^。^)
何が何でも足し算にするというところがスゴイところですね。ただ、そこがプログラミングの勉強の最初で躓くところなんですよね。(引き算にする(補数)の概念が難しいっす。)(躓いた、さちパパ)
正答者の方々(5名)です。ありがとうございます。
ともたんさん・凪 ようかさん・iammyさん・くろぅさん・Tsuneさん・とっちんさん(^。^)・よりかさん(^。^)


[ホームへ]