• ベストアンサー

なぜ1と0か?

コンピュータではONとOFF、真と偽など2つの状態を数字の1と0で処理しますが、 ONを1、OFFを0とするのは数の本質的な概念からきているのでしょうか? それとも便宜上そうしたというだけなのでしょうか? 1と0で表すことで2進数で処理できるのはわかりますが、 意味合いから考えても何となく、ONは「有」だから1、OFFは「無」だから0という気がします。 しかし、相反する2つの状態というのは、場合によっては1と-1の方が正しいのではないか?なんて思うときがあります。

質問者が選んだベストアンサー

  • ベストアンサー
  • sunasearch
  • ベストアンサー率35% (632/1788)
回答No.1

おっしゃる通り、「無い」から0で、 「有る」の最小単位として1を使っているだけです。 ONとOFFは電源が入っているかいないか、のように、 電気信号が有るか無いか、ということですので、 計算する時にも、何もないことを表す0が、 計算をする上では都合が良いのです。 0には何をかけ算しても0になりますから。 たとえば、5つの部分に分けられる一本の電線があって、それぞれの状態が、ON,ON,ON,ON,ON であれば、線全体の電気の状態は 1×1×1×1×1 = 1(ON)と計算できます。 しかし、ON,ON,OFF,ON,ONだったときには、 全体の状態は、 1×1×0×1×1 = 0(OFF)になりますが、 -1を使うと、単純には計算できません。 また、1をONに使うのも、上記例のように、 ○×1=○という性質があるため、都合が良いのです。

harisun
質問者

お礼

ご回答ありがとうございました。 本質的に有は1、無は0と考えてよいということですね。

その他の回答 (7)

  • rot-N
  • ベストアンサー率27% (118/432)
回答No.8

言い忘れ(^^;) 歴史上のコンピュータ全てがデジタルで計算しているワケではありません。OPアンプを使ったアナログの計算機もあるそうな・・・。足し算、かけ算をアナログで(2V+3Vは5Vとか、2V×2で4V)とか計算するんでしょうね。 ただ、アナログでは精度は出ませんし、安定しません。 高速で、いつも安定して計算しようと思うと計算機はデジタル論理回路で作成した方が有利で確実です。 ロジック回路で数値を扱うときに、論理のTrue、Falseをそれぞれ"1"、"0"とし、2進数の和、積の計算をさせたのでしょうね。標準ロジックICにも論理和、論理積などだけでなく、加算の回路も有ります。 ・・・というのを言い忘れていました。

  • rot-N
  • ベストアンサー率27% (118/432)
回答No.7

今の(普通の(^^;))人は、ONを真で"1"、OFFを偽で"0"としていますが、まったく本質ではありません。 電源電圧5VのロジックICで、High=5V(TTLだと2.5V程度)側の信号を真、Low=0V側の信号を偽と考える考え方もありますし、これとは逆にHigh側を偽、Low側を真と考える考え方もあります。 これでもロジック回路は作成出来てしまいますし、そう考えた方が作成しやすい回路もあります。Aの信号を反転した信号と、Bの信号を反転した信号の論理積は、Aの信号とBの信号の論理和を反転した物です。(あぅぅ、上手く説明が書けない) CMOSロジックICの中のトランジスタの配置を見てみますと、"1"がVCC側とか"0"がGND側とか考える事がおかしいことだと良く判ります。 ロジック回路をトランジスタ単体で作成するときに、GNDレベル(0V)以下の信号は作成が難しいので、簡単な、たとえば2.2V以上だったら"1"、0.8V以下だったら"0"という決め方をしていたのでしょう。 記号なので、"1"と"マイナス1"でも真理値の表は書けます(私だったら"1"と"0"の使用を禁止された時に真理値を示す表を書くときは、T=TRUEとF=FALSEにしますが(^^;))が、おそらく上記の理由で"1"と"マイナス1"ではなく、1と0にしたのだと思います。

harisun
質問者

お礼

ご回答ありがとうございました。

  • terra5
  • ベストアンサー率34% (574/1662)
回答No.6

数字というより、数学的な基本数値という方が近いと思います。 加法の単位元である0、乗法の単位元である1と考えるのがいいかと。 つまり、最小の数の集合で各種の演算を実現するものが0,1になるということだと思います。 単に二つの状態というだけならどれでもいいと言えると思いますが。 加算を考えてみます。 1と0なら 1 + 0 = 1 0 + 1 = 1 1 + 1 = 0 0 + 0 = 0 ですが 1 + -1 = ?? -1 + 1 = ?? 1 + 1 = ?? -1 + -1 = ?? 1と-1ではおそらくどう定義しても矛盾が出てくると思われます。 当然、減算、乗算、除算についても同様なことが言えます。 数学でいう「群」、「体」、「環」あたりがキーワードになるでしょう。

harisun
質問者

お礼

ご回答ありがとうございました。

回答No.5

質問者さんの発想でほぼ良いと思います。 数字の世界で「無」は0、「有」の最小値が1だからだと思います。 ただ、コンピューターの世界には「マイナス」は存在しないので、1と-1でON・OFFを表現する事は出来きません。 コンピューターでの「マイナス」は取り扱い上での決まり事でしか無く、最上位ビットが1の時を10進数で「マイナス」として取り扱います。 たとえば、-1は8ビットでは0xFF、16ビットでは0xFFFF、32ビットでは0xFFFFFFFFになります。

harisun
質問者

お礼

ご回答ありがとうございました。 マイナスの扱いは特殊なのですね。

  • gutugutu
  • ベストアンサー率14% (184/1234)
回答No.4

有りと無しは無限大の差が有ると思います。 数字では1しか違わないですが 1と-1は(仮に-1000000000・・・・・・・) でも有限です。と私は思います。 何か自分でも何言ってるのか解らなくなりました(ーー;)

harisun
質問者

お礼

ご回答ありがとうございました。

  • usami33
  • ベストアンサー率36% (808/2210)
回答No.3

初期のコンピューターはハードのみで存在していました。 つまり、電気信号の通電状態のみで全てをあらわしていたのです。 電気信号がHigh(1)ならばON 電気信号がLow(0)ならOFF この概念が2進数となるわけです #1さんの ON,ON,ON,ON,ONは 2進数で11111なので十進で31が正解です コンピューターの世界では16進で表記することがおおいので、0x1Fとなります コンピュータの歴史は結構面白いので、一度読まれてはいかがですか http://www.infonet.co.jp/ueyama/ip/history/history_ct.html http://www.ffortune.net/comp/history/ 余談ですがソフトの世界で言われている「バグ」はなんと蛾なんです http://www.itep.co.jp/bug_debug.html

harisun
質問者

お礼

ご回答ありがとうございました。

回答No.2

2進法だから0と1です。  10101 +00001 --------  10110 此をOnoffとか1-1で表現するとやっかいな事になります。

harisun
質問者

お礼

ご回答ありがとうございました。