それはすべて1と0です:コンピュータが物理的な世界をマップする方法

数”12″は卵のカートンの値12ではありません。 “岩”という言葉は、あなたが外に出くわす岩ではありません。 代わりに、それらは単なるシンボルであり、他のシンボルのコレクションから作成され、私たちの周りの世界によくマッピングされる特定の概念を表 それらは私達に管理しやすい固まりに世界、物質の固まりを、破壊する機能を与える用具である。 私たちは、客観的に「真実」ではなく、一連の物理的な制限を与えられた目標を達成するのに役立つため、それらを使用します。

本質的には、バイナリのコンピュータの使用はそれよりも複雑ではありません。 特定の制限を念頭に置いて、いくつかの目標を達成するために作成された別の人工システムだけです。

コンピュータがバイナリシステムをどのように使用するかを考える前に、なぜdenaryシステムを使用するのかを考えると便利です。 私たちの目標は、数値を表現し、それらの価値を他の人に伝えることができることです。 私たちは想像できるすべての数字に新しい文字を持っていたシステムを想像することができます。 たとえば、156は実際には上にフックを持つ波線の一種であり、上に線を持つ円で表される38のシンボルと混同しないようにしてください。 これは、文字の連鎖ではなく、最大の数字でさえも表すために一度に1文字しか必要としないので、値を表現する最も効率的な方法です。 しかし、それは最も実用的ではないでしょう。 1年生の教師が、1,589を表す文字と2,000,478を表す文字とその間のすべての文字の違いについて生徒をテストしていると想像してください。

明らかに、表現のシステムで利用可能な文字の数には制限があります。 だから、スペクトルの反対側の端についてはどうですか:単一のavailible文字を持つ集計システム? 確かに、それは可能です—今私に2,000,478ベース-1システムを使用して表示します。 明らかに、これも実用的ではありません。

突然、base-10システムは唯一のavailible数値システムとして理にかなっていますが、実用性、優雅さと効率のための私たちの必要性を考えると良いフィッ 以下に示すように、その列の数値に次の10の累乗を掛けることで、2,000,478の数を簡単に表すことができます。

  • 2×10π=2,000,000
  • 0x10π=0
  • 0x10π=0
  • 0x103=0
  • 4×102=400
  • 4×102=400
  • 4×102=400
  • 4×102=400
  • 4×102=400
  • 4×102=400
  • 4×102=400
  • 4×102=400
  • 4×102=400li>

  • 7×101=70
  • 8×10π=8

sum=2,000,478

値を表す素晴らしいシステムです。 なぜコンピュータはそのシステムを使用しないのですか?Div>

電流が走っている(開いている/オン)か、そうではない(閉じている/オフ)ということは、1と0の2つの値の文字が利用可能であることを意味します。 これらの制限を考えると、コンピュータが使用できる表現のシステムを見つけるために、base-10システムを選択するために使用したのと同じ方法を使用異なる文字を表現するために利用可能な二つの状態だけで、バイナリへの唯一の他の代替は集計システムになります。 しかし、タリーシステムで値255を表すには、255桁が必要です。 これは、比較的小さな数を表すために255″オン”トランジスタです。 バイナリは、同じ目標を達成するために8を必要とします。

バイナリがそれを行う方法は次のとおりです。

基数2のシステムは基数10のシステムと同様に機能しますが、各列の値に2の次の倍数を乗算する代わりに、次の2の倍数で乗算されます。 例えば、二進数10100は、以下の計算値を単純に加算することにより、基数10の数値に変換することができます。

  • 1×2π=16
  • 0x23=0
  • 1×22=4
  • 0x21=0
  • 0x2π=0

ビットからバイトへ

ここから、オンとオフの電気パルスで私たちの周りの世界をマッピングするために、この数値システムを使用する方法のための規則を構築するために開始す まず、文字に名前を付けましょう:コンピュータ内のデータの最小単位であるバイナリ桁またはビットです。

次に、文字や特殊文字のような数値以外の値を表すために必要なビット数を決定します。 このプロセスは、値を表す数値システムを選択するプロセスと同じくらい考案されています。 私たちは、特定の目標、特定の事前に確立されたツール、および優雅さと効率のための一般的な欲求を持っています。 キーボードには101文字があり、最大値として101をバイナリで表す必要があることを意味します。 基数10の101は2進数の01100101です。 各キーを特定の数値にマッピングする場合、これは7つの利用可能なトランジスタのベースライン要件です。 しかし、私たちが表現したい他の文字がある場合はどうなりますか? 7では、すべてがオンになっており、127を底とする10までの数字のみを表しています。 また、私たちと一緒に動作するようにもう一つのビットを与えることができます。

したがって、データを測定するためのベースライン単位であるバイトがあり、最低でも単一の文字を表すと言われています。 これで、0-255(00000000-11111111)の値を表すことができます。

コンピュータのみを理解し、アメリカの標準コードのための情報インターチェンジ(ASCII)設立された割り当て各文字のキーボードの定数値として描かれる。

例として こちらはどのようすを表す、”こんにちは。”バイナリ:

  • テキスト:こんにちは。
  • ASCII番号: 072 101 108 108 111 032 087 111 114 108 100 033
  • バイナリ: 00110000 00110111 00110010 00100000 00110001 00110000 00110001 00100000 00110001 00110000 00111000 00100000 00110001 00110000 00111000 00100000 00110001 00110001 00110001 00100000 00110000 00110011 00110010 00100000 00110000 00111000 00110111 00100000 00110001 00110001 00110001 00100000 00110001 00110001 00110100 00100000 00110001 00110000 00111000 00100000 00110001 00110000 00110000 00100000 00110000 00110011 00110011

テキストと同様に、画像もバイナリに変換する必要があります。 画像をピクセルのグリッドに分割し、各ピクセルの色を3色(赤、緑、青)の組み合わせに分解することで、画像をバイナリで表すことができます。 これらの色のそれぞれが個別に持つことができる最大値は255であり、最小値は0であり、各ピクセルの各色の値は、ピクセルごとに合計3バイトの1バイp>

例として、我々は表現することができます上記の位置(1,0)に示されている緑色のピクセルの色合いをrgbで、以下のバイナリで示します。

  • rgb値: (6, 250, 7)
  • Binary:00000110,11111010,00000111

最後に、”sampling”を使用して音データをバイナリで表すこともできます。 記録された音の音波をグラフ化し、一定の間隔で波の高さの値に注意することにより、我々はその後、バイナリにそれらの値を変換し、後でそれらのバイp>

例えば、上記の音波時間間隔1で10進数の値が8で、バイト値が00001000になります。

バイナリからロジックへ

パンチカード、磁化テープ、光ディスクなどを含むバイナリデータを格納する多くの異なる方法があります。 すべては、基数2のシステムで値を表すこの規則を使用します。 しかし、バイナリで世界を表現することは戦いの半分に過ぎません。 残りの半分はそれで動作しています。 ビット単位の演算子を入力します。

ビットごとの演算子は、個々のビットで動作し、CPUが使用する基本的な算術演算です。 各ビットごとの演算子は、2つの入力が与えられた特定の出力を生成する所定の規則のセットを持っています。Div>

ビットごとの演算子とそれに対応する出力
ビットごとの演算子とそれに対応する出力

これらのツールは、電気が発見されるずっと前に使用してきたシステムの一部であるものとして認識することができます:ロジック。 ビット演算子は外国に見えるかもしれませんが、それらは論理演算子から派生しており、数値システムのように、現在の物理的制約を考慮して効率的

私たちの目標は、二つの可能な文字で表される二つの異なる値を取ることです決定論的なルールのセットに従って新しい値を生成します。 命題論理のシステムが以下の計算論理にどのようにうまく変換されるかを見ることができます:

この文の文脈でAND演算子について考えてくださ: “ボブは昼食を食べ、ボブは映画に行きました。”最初の文が真で、2番目の文が偽の場合、その文は偽です。しかし、最初の文が真で、2番目の文が真であれば、文は真です。

T&F=F

しかし、最初の文が真であり、2番目の文が真であれば、文は真です。

T&T=T

OR演算子はどうですか:”ボブは昼食を食べたか、ボブは映画に行きました”。 最初の文が真で、2番目の文が偽の場合、文は真のままです。しかし、両方が偽の場合、文は偽です。

F v F=F

ここで、TとFを1と0に置き換え、バイナリを操作してバイナリの新しい文字列を作成し、したがって値の新しい表現を作成するためのビルディングブロックを持っています。 これらのビット演算子を論理ゲート、この論理を使用して新しい値を生成する電子スイッチで使用します。 次のシナリオを描きます:

数字の表示を開始するには、電卓の右下のLEDを点灯する必要があります0, 1, 3, 4, 5, 6, 7, 8, そして、9ではなく、数2。 それは二進数を意味します00, 01, 100, 101 110, 111, そして、1001ではなく10は単一のON信号(1)を生成する必要があります。 これらの電気信号をそのLEDの単一のON信号に変換するには、3つの論理ゲートとNOT論理ゲートを一緒にチェーンして、これらの値が1または0のいずれかになるようにすることができます。 以下では、バイナリ(1110)で表される数字7の例を見ることができ、その結果、単一のON信号が発生し、右下のLEDが点灯します。

Quantum Computing

The only exception to this rule of representing the world in 1’s and 0’s in computers lies in Quantum computing.

Quantum computing attempts to use the “spooky” nature of sub-atomic particles to represent represent data. 光子は、例えば、一度に複数の状態を表す、一見矛盾した挙動を示すことが示されている。 マルチステートの動作は、一般的に電気信号で得られる典型的なオン/オフ以外に、余分な値を与えます。 量子コンピュータは、データを格納するためにビットを使用する代わりに、同時に1または0または両方のいずれかにすることができる量子ビットを使



コメントを残す

メールアドレスが公開されることはありません。