コンピューターが2進数システム(0,1)を使用する理由 代わりに3進数システム(0,1,2)または他の番号システムを使用しないのはなぜですか?
コンピューターが2進数システム(0,1)を使用する理由 代わりに3進数システム(0,1,2)または他の番号システムを使用しないのはなぜですか?
回答:
私たちはコンピューターサイエンスに携わっているので、このように答えます。彼らは答えません。
「コンピューター」とはどういう意味ですか?多くの定義がありますが、科学としてのコンピューターサイエンスでは、最も一般的なのはチューリングマシンです。
チューリングマシンは、いくつかの側面で定義されます。状態セット、遷移テーブル、停止セット、および議論にとって重要なアルファベットです。このアルファベットは、マシンが入力として読み取ることができ、テープに書き込むことができる記号を指します。(異なる入力文字とテープのアルファベットを使用できますが、今のところは心配しないでください。)
したがって、入力アルファベット、または、または、またはチューリングマシンを作成できます。関係ありません。実際、データをエンコードするために選択した任意のアルファベットを使用できます。
つまり、は9 と言うことができます。または、は9と言うことができます。これらは単に区別できるシンボルであるため、問題ではありません。
秘Theは、バイナリで十分だということです。ビットのシーケンスは数字として解釈できるため、バイナリから他のシステムに変換したり、逆に変換したりできます。
しかし、単項でも十分であることがわかります。9を111111111としてエンコードできます。これは特に効率的ではありませんが、計算能力は同じです。
Lambda計算など、計算の代替モデルを調べると、事態はさらにひどくなります。ここでは、数値を関数として表示できます。実際、すべてを関数として見ることができます。物はビット、0、1ではなく、可変状態のない閉じた数学関数としてエンコードされます。この方法で数字をどのようにできるかについては、教会の数字をご覧ください。
ポイントは、0と1は完全にハードウェア固有の問題であり、選択は任意であるということです。使用しているエンコードは、オペレーティングシステムやネットワークなどのいくつかのサブフィールドを除き、コンピューターサイエンスには特に関係ありません。
考慮すべきその他の事項:
2進数システムを使用する理由の一部は、線形空間ではなく対数空間で数値を表現できる最も低いベースの数値システムであることです。一意に区別単項で異なる数、表現の平均長さは、少なくともに比例しなければならないの長さの唯一の文字列があるので、、。2進数の異なる数を一意に区別するには、長さ 2進数があるため、表現の平均長は少なくともに比例する必要があります。Nログ10Nログ102≈0.3Nnと。より大きなベースを選択すると、一定の要因によってスペース要件が改善されます。base 10は、平均表現長で数値を取得します。これは、すべてのベース2表現の平均長の倍です。バイナリと単項の違いははるかに大きいです。実際、それは関数です。単項式ではなくバイナリーを選択することで多くのことが得られます。それに比べて、より高いベースを選択すると、はるかに少なくなります。
2つの状態を区別するだけでよい場合、デジタルロジックを実装する方が簡単であるという考えには、いくつかの真実があります。電気信号はアナログであるため、必要なだけ多くの離散状態を表すように解釈できますが、同じ範囲でより多くの状態を確実に区別するには、より正確な(したがって高価で扱いにくい)ハードウェアが必要です。これは、できるだけ低いベースを選択することをお勧めします。
別の潜在的に重要な考慮事項は、論理が2つの異なる値とを含むと古典的に理解されていることです。今、私たちはこれよりも手の込んだ論理を持っていますが、多くの数学と科学はまだかなり基本的な概念に基づいています。コンピューターが計算に使用され、そのロジックが計算に重要であることを考慮すると、少なくとも2つの異なる状態を適切にサポートすることをお勧めしますが、ロジックはそれ以上を必要としません。f a l s e
ほとんどのコンピューター回路が2つの状態を使用する大きな理由の1つは、n個の異なる電圧レベルを区別するために必要な回路の量がn -1にほぼ比例することです。その結果、3つの識別可能な状態を持つには、信号ごとに2倍の回路が必要であり、4つにするには3倍の時間が必要です。情報量を2倍にするだけで回路量を3倍にすると、効率が低下します。
コンピューターには、要素ごとに3つ以上の状態を使用して情報が保存または通信される場所があることに注意してください。フラッシュメモリアレイでは、数百または数千のメモリセルが1組のレベル検出回路によって処理される場合があります。一定量の情報を保存するときに2つではなく4つのレベルをセルごとに使用すると、レベル検出回路のサイズが3倍以上になる場合がありますが、必要なメモリセルの数は半分になります。100-base-T以上の高速イーサネットで通信する場合、ケーブルの複数の信号レベルを検出するために必要な回路のコストは、より多くのワイヤでケーブルを使用するか、より多く処理できるケーブルを使用する必要があるため、コストが大幅に低下する可能性があります許容できないレベルの歪みなしでの1秒あたりの信号遷移。
0と1の両方を同時に持つことができる情報の基本単位としてqビットを使用する研究室には、量子コンピューターが存在します。
http://en.wikipedia.org/wiki/Quantum_computer
このリファレンスhttp://en.wikipedia.org/wiki/Ternary_computerに従って構築された三元量子コンピューターもあります。
そのため、2進数システムに依存しない代替コンピューティングデバイスを構築することは確かに可能です。たとえば、光ファイバーシステムでは、暗い場合は0を使用し、光の2つの異なる直交偏光を1および-1として使用します。
これらのことに言及する理由は、計算には2進数で十分ですが、計算に使用できる代替の数値システムがあることを示したいからです。
この意味で、2進数システムは優れています。数値の基数表現を使用してすべての整数をエンコードできます。http:// en.wikipedia.org/wiki/Radixこれらの値は、ASCIIコードA = 0x41 = 01000001を表すことも、値が機械命令nop = 0x90 = 0x10010000を表すこともあります。
デジタルコンピューターの処理能力の中心にあるのは、スイッチのような働きをするトランジスタです。スイッチの「ゲート」で電流を上げることにより、「コレクタ」と「エミッタ」の間で電流が流れることができます-スイッチがオンになります。トランジスタは、完全にオンまたは完全にオフ(「飽和」)の2つのモードのいずれかで動作するように設計され、それらの状態が明確に分割されます。トランジスタは2つの状態をすばやく切り替えることができ、エラーが非常に少ない状態のままになります。
この回路は、AND、NAND、OR、XORなどの論理デバイスの基礎を形成します。NAND関数は、最も基本的なビルディングブロックです。これらのロジックデバイスは、予測可能な状態を維持するプロセッサを提供するために組み立てられ、多くのトランジスタを小さなスペースに詰めて必要な機能を提供できます。
トランジスタは複数の、またはさまざまな状態を管理できますが、その方法で動作する場合、従来の「デジタル」コンピューターを生産しません-予測可能な状態に留まる傾向がなく、干渉、飽和、振動などが発生しやすい-それらは、計算能力の面で限られたアプリケーションを持っています。オペアンプはアナログコンピューターと見なすことができます。
現在、3つ以上の状態を確実に保持できる「スイッチ」を作成する技術がないため、binary(1,0)のみを使用します。(現時点では、量子コンピューターは正確には販売されていません。)バイナリシステムが選択されたのは、特にそのような接続を数兆個扱う場合に、電流の存在と電流の不在を区別するのが非常に簡単だからです。また、システムは絶えず変換する必要があるため、このシステムで他の数値ベースを使用するのはばかげています。これですべてです。