データの最小単位としてビットに代わるものはありますか? 0または1だけではないが、実際にはその間に多くの可能な状態を保持する何か?そのようなフロートを格納するほうが自然ではないでしょうか?
もちろん、理論的にも実用的にも可能です。
理論的には、代替案には2つのクラスがあります。2以外の基数を持つデジタル数値システム(実際、10進法はそのようなシステムの1つであることがわかっています)。および非デジタル番号システム。数学的に言えば、離散ドメインと連続ドメインについて話しています。
実際には、両方のオプションが検討されています。初期のデジタルコンピューター(ENIACなど)の一部では、現在普及しているバイナリエンコーディングではなく、10進数エンコーディングが採用されていました。他の拠点、例えば三項は、実行可能(または実行不可能)である必要があります。難解なプログラミング言語Malbolgeは、理論的な3元コンピューターに基づいています。ほとんど風刺的ですが、機能しない技術的な理由はありません。連続ドメインの保存と処理は、歴史的にアナログコンピューターで行われており、振動信号の周波数や振幅として数量をエンコードし、これらの信号にあらゆる種類の変調を適用して計算を実行していました。今日、量子コンピューティングは、連続ストレージセルの背後にある理論を再び興味深いものにしています。
どちらの方法でも、理論上の最小の情報単位としてのビットはまだ存在します。代替手段は単一のはい/いいえよりも多くの情報をエンコードでき、まだ誰もまだ小さい理論上の単位を考え出していないためです(そして、私はそれが起こることを期待していません近いうちに)。
センサーで使用されるアナログ信号を基本的に説明していますが、内部計算ではめったに使用されません。問題は、ノイズが品質を低下させること、通信が難しい基準点の非常に正確なキャリブレーションが必要なこと、そして遠くまで移動すると強度が失われるため、伝送が問題になることです。
アナログコンピューティングの探索に興味がある場合は、ほとんどの学部生の「エレクトロニクス入門」クラスで op-amp integrators のようなものを構築する必要があります。正式な指示がなくても簡単に構築できます。
同じノードに複数のデジタル状態を保存することもできます。たとえば、0〜2.5ボルトがゼロで2.5〜5.0ボルトが1の代わりに、その間に3番目の状態を追加できます。ただし、複雑さが増し、ノイズの影響を受けやすくなります。
それらはキュービットと呼ばれ、量子コンピュータで使用されます。それらについての詳細はウィキペディア entry にあります。このようなコンピュータを安定して経済的に実現できるようにするための研究が行われています。
ビットを使用する理由の1つは、情報を正確に格納および取得するのに役立つことです。
実世界はアナログですしたがって、コンピュータが渡す情報や保存する情報はすべて最終的にアナログです。たとえば、ワイヤ上の特定の電圧の電流、ディスク上の特定の強さの磁荷、またはレーザーディスク上の特定の深さのピット。
問題は次のとおりです。そのアナログ情報をどの程度正確に測定できますか?ワイヤの電流が次のように任意の10進数として解釈されることを想像してください。
このシステムでは、数パルスの電流で多くのデータを渡すことができますよね?しかし、問題があります。電圧が何であるかを非常に確認する必要があります。温度や磁石、宇宙線など何らかの変動の原因となると、間違った数値を読み取ることがあります。そして、より細かく測定しようとすればするほど、そのリスクは大きくなります。 1ミリボルトの差が大きかったと想像してください!
代わりに、通常はデジタル解釈を使用します。あるしきい値を超えるものはすべて真であり、その下のものはすべて偽です。それで、「現在何かありますか?」のような質問をすることができます。 "Exactlyどれくらいの電流があるのか?"の代わりに
「正しい球場」にいるだけでよいため、個々のビットを自信を持って測定できます。そして、多くのビットを使用することによって、私たちはまだ多くの情報を得ることができます。
バイナリの代わりに三元のコンピュータもあります。 http://en.wikipedia.org/wiki/Ternary_computer
三元コンピュータ(別名三元コンピュータ)は、 進論理 (3つの可能な値)その計算でより一般的な 2進論理 (2つの可能な値)の代わりに...
私たちにとってはもっと自然なことかもしれませんが、デジタル回路、したがってプログラミング言語にバイナリが選択された特定の理由があります。 2つの状態がある場合、2つのボルト設定を区別する必要があるだけです。たとえば、0Vと5Vです。基数(ベース)がさらに増加するたびに、その範囲をさらに分割して、互いに区別できない値を取得する必要があります。電圧範囲を広げることもできますが、回路を溶かすというこの厄介な癖があります。
ハードウェアタイプをデジタル回路から変更したい場合、オプションはより多様です。歯車は耐熱性が高く、電子の電荷よりもはるかに明確であるため、機械式コンピュータでは10進数が使用されていました。他の場所で述べられている量子コンピュータは、物事を扱う他の方法を持っています。光コンピューターは、これまで扱ったことのないこともできるかもしれません 磁気コンピューター も可能です。
今日では、あらゆる状態を保持できるアイテムを作成したり、アナログデータを操作したりできると思います。システム全体を構築し、すべての論理コンポーネントを実行してフル機能のプログラム可能なアーキテクチャを実現することは、多くの作業であり、このタスクを実行する企業にとって財務上のリスクとなります。
[〜#〜] eniac [〜#〜] は、10桁のリングカウンタを使用して数字を格納する最後のアーキテクチャだったと思います。私はこれについて間違っている可能性があり、よくわかりませんが、これがマシンの他の部分にどれほど影響を与えたか。
ストレージは未来への送信と考えることができ、継続的(アナログ)メディアのすべての送信問題が適用されます。
これらの状態を保存することは簡単なこと(3方向のスイッチまたは何らかのグリッド)であり、これらの状態を物理的に保存することは、多くの回答がカバーする1つの問題であり、私よりもはるかに優れています。
私の主な関心事は、この格納された状態がどのようにエンコードされるかであり、実際の連続データの表現にはビットが十分であり、必要な精度に応じてビットを追加し続けるため、このタスクは愚かな用法である可能性が高いようです。
真に連続的なデータをこの方法で保存することは不可能ですが、それらを計算するための方程式、たとえば.
1/3
収納できます。
clueとinklingは、ビットよりも小さな情報です。ビットの明確な値を確立するには、通常、いくつかの手がかりが必要です。 Inklingはさらに悪い:いくつ加算しても、結果のビットの値を確実に知ることはできません。
さらに真剣に、 多値論理 があります。ここで、基本単位はn状態の1つを持つことができます(n> 2)。これらの単位は、前述の意味でビットよりも少ない情報を運ぶと考えることができます。パラグラフですが、情報理論の観点からは、それらがより多くを運ぶと言う必要があります。たとえば、4つの値を持つロジックの1つの値が運ぶことができるのと同じ量の情報を表すには、2ビットが必要です。
最適な数値ベースはe ですが、デジタルエレクトロニックで数値を表す最も簡単な方法は2つの状態(高電圧= 1、低電圧= 0)であるため、2進数表現が選択されました。
可能なデータの単位は小さくなります。正式名称はわかりませんが、unと呼びましょう。
ビットは「バイナリdigIT」のスマートコンボワードであり、2つの状態が考えられます。そのため、可能な状態が1つだけの一種の数字が必要です。
それが何を意味するか見てみましょう。これは、使用できるゼロのみがあることを意味します。
どのように数えますか?どのx-baseシステムでも、数字がなくなるまで値を増やし、数字を追加して数値を形成します。数字が1つしかない場合は、すぐに数字が足りなくなります。
ゼロ= 0 1 = 00 2 = 000など
これは間違いなくより自然です。それは、あらゆる離散的なものに完全に対応します。じゃがいもは何個? 00000じゃがいも4個です。ちょっと待って...それは1つずれています。それが気に入らない場合は、0の値を1に再定義できます。そして、それは本当に自然なことです。ゼロが1つもない、1つのゼロが1、2つのゼロが2などです。
ただし、これはソリッドステートマシンには非現実的です。数字は物理的に配置および削除する必要があり、適切にスケーリングされません。