• ベストアンサー

10進法

ここに、質問するのがベストかどうかわかりませんが、 世の中では10進法が使われていますが、これは人間の手や足の指が 10本あったからなんでしょうか? それとは別に、 コンピューターは2進法で動いていると聞きました。2進法ということは、大きい数を表すときには桁が10進法であらわすときの5倍必要だとおもいます。 コンピューターにとって、桁が多いのと、10進法や20進法などといったように進法の数を増やすのでは桁を増やすほうが得意なのでしょうか? うまく説明できませんが、教えてください。

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

  • ベストアンサー
  • char2nd
  • ベストアンサー率34% (2685/7757)
回答No.5

 #3です。 >デジタルというのは、すべて0と1で表現できるものとして考えてよろしいのですか?例えば「あ」という文字もコンピューターの中では0と1で認識されているのですか?もしそうだとしたら、その2進法の数字に一致する人間の世界の10進法の数字と一致してまずいと思いますが。上手くいえませんが、どうなんでしょうか?  文字についてはすべて「文字コード」というのが割り当てられています。たとえば、「あ」のばあいだとJISコードなら「2422」というコードになっています。ただし、これは10進法ではなく16進法表記になっています。10進法にすると「3634」になります(16×2+4、16×2+2)。  システム内部でこのデータを扱う場合、この前にそれが文字データであることを表すコードが追加されます。  数値の場合も、そのデータが数値であることを表すコードにその数値を2進法化したデータが続くようになっています。  ちょっと古い話ですが、昔のN88-BASICだと、プログラムの中で文字コードを表すときはCHR$という定義文字を使ってました。前述の「あ」の場合だとCHR$(2422)という具合です(実際の使い方とは違いますが)。

bzxjpjp
質問者

お礼

なるほど。コードをつけるんですね。 よくわかりました。

その他の回答 (8)

回答No.9

追加です。 > 大きい数を表すときには桁が10進法であらわすときの5倍必要だとおもいます。 桁数としては、約3倍です。 1024(10) = 1000000000(2) など、 対数の知識があれば、log10 / log2 ≒ 3 から言えます。

bzxjpjp
質問者

お礼

そうですね。お恥ずかしい限りです。 そろばんの話は大変理解しやすく、納得です。 ありがとうございます。

回答No.8

一桁で扱う数字を増やすと、機械なり部品の「質」を高める必要があります。既に回答にありますが、ON/OFF だけを扱うのと、電圧を 10等分して扱うのでは、部品の精度が全く違います。 一方で、桁数を増やすためには、考え方としては、単に、「同じ部品を増やす」だけです。 なので、桁数を増やすのは(実際には、電力やスピードの制約があって大変ですが)比較的簡単なのです。 これは、「そろばん」なら、何桁のものでも比較的簡単に作れるのに対して、「計算尺(は、見たこと無いかも)」で精度の良いものを作るのは、とても大変なのと同じです。 さて、 > もし、通信波形を安定でき、例えば4等分することができたら、扱う情報量も2倍になるから、処理速度も2倍になると解釈してよろしいんですよね。 ちょっと考え方は違いますが、1.2kbps や、2.4kbps というスピードで、普通の電話線を使って通信をしていた頃は、2.4kbps のほうは、複数の状態を使い分けて、(0,0)(0,1)(1,0)(1,1) の状態のうちひとつを送ることで、物理的な伝送スピードは同じで、データ転送スピードは1.2kbps の2倍というのを実現していました。

回答No.7

数の発生にかんしては下のHPが楽しい読み物だと思います。コンピューターには触れてませんが、数学の話題を漫画にして多くの人に楽しめるように書かれたています、力作だと思います。 下にも書き込みがありますが、0,1を使った計算はコンピューターにとって便利なのです。例えば足し算が簡単にプログラムできます。 110 -------- 6 + 011 -------- 3 ----- 1001 ----------9 となりますが、コンピュータで6+3=9をプログラムするのはどうすればよいか考えると、2進数便利さがわかってきます。私は多分こんなところじゃないかと思っています。電気信号がON,OFFだから0,1というのが一番分りやすいですが。

参考URL:
http://www.mathcomics.com/jp/main.htm
bzxjpjp
質問者

お礼

おもしろいHPの紹介ありがとうございます。

  • Pesuko
  • ベストアンサー率30% (2017/6702)
回答No.6

>例えば「あ」という文字もコンピューターの中では0と1で認識されているのですか 約束事だけです http://ash.jp/code/codetbl2.htm コード表というある種の団体が取り決めた表の上に文字があり当てられているだけで たとえば簡単なASC表では1文字を1バイト(8ビット)で表現しますが http://penhagi.com/access/soft/f_mailto.htm 「A」という文字は縦1横4の位置にありますよね。 縦を8ビットの半分の4ビットで表現し 横も半分の4ビットで表現します。 縦1と横4なので0001+0100なので 「00010100」がASCコードのAに割り当てられてます。 00010100を表示せよと命令すればAが表示されるわけです。

bzxjpjp
質問者

お礼

なるほど。 ビットとは桁数のことですね。アルファベットは26文字しかないので、8ビット(2の8乗で256)ですべて対応できますが、日本語は漢字も含めてたくさんあるので、16(2の16乗で65536)ビットないと対応できないので、2バイト文字を外国のパソコンで見ると上手く表示されないのですね。googleで検索したときにurl欄に出る%20...というのは文字情報だったのですね。 なんか、もやもやっとしていたのが、一気に取れたって感じですっきりしました。ありがとうございます。

回答No.4

コンピュータが「0」と「1」の2進法を使っているのは「LO」と「HI」、電源だとOFFとONだけで表現できるからです。例えばOFFのときは0[V]、ONのときは5[V]が出力されます。つまり2値で表現できるため、送信側の信号が多少歪んだとしても受信側は区別できるわけです。 コンピュータでもし10進法を使用したい場合は、先ほど例に挙げた0~5[V]の値を10等分することにより可能です。しかし送信過程において信号が歪んでくると受信側は送信側の信号を読み違える可能性が出てきます。 以上のことから多少桁数は増えたとしてもコンピュータでは2進法を用いるのが一般的となっています。機会があれば1度、コンピュータの通信波形をオシロスコープなどで観測されてみるとよいですが、驚くほどに乱れた波形です。

bzxjpjp
質問者

お礼

分かりやすい解説ありがとうございます。 通信波形が乱れていることから、精度をあげるために2進法を使っていることが分かりました。 だんだんと数学とは離れてきましたが。。 もし、通信波形を安定でき、例えば4等分することができたら、扱う情報量も2倍になるから、処理速度も2倍になると解釈してよろしいんですよね。 間違えていますか?

  • char2nd
  • ベストアンサー率34% (2685/7757)
回答No.3

 お察しの通り、10進法は人間の指が左右合わせて10本あるからだ、といわれています。数を数えるのに指を折っていたので、10で繰り上げた方が数えやすかったということのようです。  コンピュータが2進法なのは、電気信号が基本的にON/OFFでしか表せなかった頃のなごりです。つまりデジタル表示ですね。信号としての劣化を防ぎ、精度を上げるには2進法の方が都合がいいのです。  コンピュータは処理速度が速いですから、桁数が多くなってもあまり関係ないです。表示するときはさすがに人間が読みにくくなるので、10進法か16進法に変換します。

bzxjpjp
質問者

お礼

回答ありがとうございます。 デジタルというのは、すべて0と1で表現できるものとして考えてよろしいのですか?例えば「あ」という文字もコンピューターの中では0と1で認識されているのですか?もしそうだとしたら、その2進法の数字に一致する人間の世界の10進法の数字と一致してまずいと思いますが。上手くいえませんが、どうなんでしょうか?

  • TobitaQ
  • ベストアンサー率48% (66/135)
回答No.2

コンピューターの表現は電気のON/OFFですので、文字もすべて2進法でしか管理できないのです。

bzxjpjp
質問者

お礼

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

  • Pesuko
  • ベストアンサー率30% (2017/6702)
回答No.1

>桁を増やすほうが得意なのでしょうか 2進であらわすほうが簡単だからであって、桁が多くなるのは 結果的な副産物です。 電気が流れてる、とまってるで2進表現。

bzxjpjp
質問者

お礼

早速の回答ありがとうございます。 コンピュータは難しいことできるのに、中身はとてもシンプルなのですね。 逆に、シンプルだから複雑なこともできるのかもしれないですね。