人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

コンピュータはTRUEとFALSEしか処理できず、単純計算をものすごいスピードで繰り返しているだけという話を聞いたことがありますが、TRUEとFALSEしか処理できないコンピュータがどのようにしてOSやソフトウェアを処理しているのでしょうか。わかりやすい考え方、サイトを教えてください。

●質問者: kuruma_neko
●カテゴリ:コンピュータ
✍キーワード:OS コンピュータ サイト スピード ソフトウェア
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● spyglass
●30ポイント

人間の世界では数字は0や5や10と沢山あります。

色や形も無限にありますね。

ところがコンピュータの世界では電流を流すか切るかの0か1の正解しかありません。

まさにTRUEとFALSEの世界です、これを2進法と言います。

但しその0と1を8ヶのBOXに入れれば00000000?11111111まで数える事ができます。

10進法に直すと0?255までです。

コンピュータはこの2進法のBOXを足したり引いたりしながら答えを導き出しています。


実際のコンピュータの中では0と1であっても10進法に変換すれば人間は目で見る事が出来ますね。

プログラムの言語をコンピュータが認識しているのでは無く人間が見える形に置き換えられてるだけなんです。


この辺りを参考にしてください。

http://www.nec.co.jp/literacy/basic/chapter-1/page-c1-2-2.html

http://www.shuiren.org/chuden/teach/code/main2.htm

http://www.plustarnet.com/aspil/Programming/c05.htm

http://www.rd.mmtr.or.jp/~bunryu/nisinhou2.shtml


2 ● kumosuk841
●10ポイント

http://mrs.suzu841.com/it/

がこれの答えになるとおもわれますが?


3 ● quintia
●40ポイント

「コンピュータはTRUEとFALSEしか処理できず、」が曖昧ですね。

「TRUEまたはFALSEを入力するとTRUEまたはFALSEを出力する回路」が基礎です。

http://www.wakhok.ac.jp/~fujiki/infosys2/infosys2-2005-7.html

の上半分を見てください。

NOT回路以外は、2つの入力から1つの出力を得ていることに注意してください。(「TRUEとFALSEしか処理できず」という文から察すると「2つの入力から1つの出力を得る」ことを想像していなかったかもしれないので)

これらを「たくさん繋げてやる」ことで計算ができます。

先のページの後半から加算機の説明が始まります。

たかだか2進数1桁の足し算で、2進数2桁を得る機械です。

しかし「2値を処理する回路の組み合わせで加算ができる」ことは分かるはずです。


そしてメモリ、つまり記憶装置ですね。

フリップフロップというのが、一番単純な記憶装置として機能します。

http://ja.wikipedia.org/wiki/%E3%83%95%E3%83%AA%E3%83%83%E3%83%9...

2つのNAND回路が、お互いの出力からのフィードバックを入力にして組み合わされています。

Rに信号を入れるとこの回路(Q)は1を出力し、Sに信号を入れるとこの回路は0を出力します。

そして信号を入れない間は状態を保持します。


あとは規模の問題です。

加算機をたくさん繋げてやれば多くの桁の足し算が出来ます。

加算機に入力するデータを、たくさんのフリップフロップ(=メモリ)の固まりの、ある場所から持ってきてある場所に格納するよう、「ある場所」を指定できるようもできるでしょう。

メモリの一固まりに意味を持たせて、「この固まり」なら「このメモリとこのメモリを足してこのメモリに入れる」というようなことが出来るようになります。(CPUの16bit, 32bit, 64bitはこの一固まりの大きさに由来します)

メモリの一固まりに意味を持たせて意味を持たせることができたら――面倒ですね。コマンドと以降呼びましょう――今メモリのどの部分をコマンドとして実行中なのか? という概念がでてきます。その「実行中の位置」もどこかのメモリに保持できますね。

「この値が0なら、ここへジャンプ、0じゃないならここへジャンプ」というようなコマンドが作れます。

繰り返し処理ができるようになると、かけ算ができるようになります。

これで「プログラムが書けるようになった」という状態になります。


メモリ上のこの値を書き換えるとディスプレイ上のある素子がある色になるとか(昔は本当にプログラマがそうやって表示させていたのですよ)、キーボードのあるボタンが押されている間はこのメモリが1になっているとか、入出力のためのデバイスとの取り決めができ、あるいはデバイスをコントロールするためのコマンドができ、ここで今のパソコンの原型になってきます。


その後はプログラマが自前でやっていたこと(画像表示とか)を OS が肩代わりしてやってくれるように変わり、どんどん OS が大きくなってきたわけです。

なので、現在のコンピュータはここまで書いてきた様な単純なものとは全く違います。

でも、TRUEまたはFALSEの2値を扱う回路の組み合わせで、「計算機とメモリが作れること」、「計算機とメモリが作れればプログラム」が作れることが雰囲気だけでも伝わればいいのですが。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ