コンピュータの数値表現とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > コンピュータの数値表現の意味・解説 

コンピュータの数値表現

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/03/31 09:27 UTC 版)

本稿、コンピュータの数値表現(コンピュータのすうちひょうげん)では、コンピュータにおけるデジタル方式による数値の表現方法について解説する。


注釈

  1. ^ 台数が圧倒的に多い組み込みシステムでは8ビット64ビットパーソナルコンピュータでは1980年代から1990年代は8ビット〜16ビット、現在は一般的に32ビット〜64ビット程度。128ビットのものは、今のところ、かなり特殊な業務用の高性能のコンピュータに限られる。
  2. ^ 「数学の数」と「コンピュータ内部の数値」は、基本的に別ものであり、多くの場面で異なった性質を示す。デジタルコンピュータのCPU内部に存在する数値はすべて、スイッチが8個から128個程度並んだものにすぎない。8ビットコンピュータならスイッチが8個、64ビットコンピュータならスイッチが64個並んだものにすぎない。つまり、たかだか8個から64個ほど並べたものでしか表現されていない。コンピュータのCPUは、そもそも基本的に、「数学的な概念」はまったく扱っていない。 「数学の数」と「コンピュータ内部の数値」は基本的に別ものであり、たとえば数学では中学・高校レベルでも「有理数」や「無限」などという数学的概念が登場するが、CPU内部のレジスタや演算器では「有理数」や「無限」などという概念すら、そもそも扱えず、扱わない、ということをまず理解したほうが良い。「代数的数」という概念も同様で、CPU内部では全く扱われていない。たとえば、純粋な数学ではある自然数 n に「1を足す」ということは無限に繰り返すことができるが、たとえば8ビットコンピュータの内部では8ビットの0000000〜1111111は十進数の「0〜255」あるいは「-128〜0〜127」として扱われており、たとえばCPUで「0〜255」として扱っている場合、演算器で00000001に1を足すと00000010でこれは十進の2に相当し数学的にも正しいが、11111111(十進の255)に「1を足す」と、すべての桁がゼロの「00000000」となってしまい、演算結果は「0(ゼロ)」となる(あるいは演算器がオーバーフローのフラグを立てる)。「255に1を足すとゼロになる」という性質は、「数学における数」とは全然異なる性質である。数学の世界では、何か特殊な宣言をしていないのに、勝手に「自然数が255で終わってしまい、255の次はゼロになる」などということはありえない。だが純粋数学の数学者から見れば「ありえない」ことが起きるのがコンピュータの数値の世界である。そして数学者の視点から見れば、「とてつもなく ずさん」と思えるような、とんでもない誤差も生じるのが、コンピュータ内部の数値の世界である。それについては以下の本文で解説する。
  3. ^ 一例だがもっというと、数学的には、単に、8ビットならmod256(整数の合同を参照、剰余類環#計算機に簡単に述べられている)だ、というだけである。合同算術の歴史はコンピュータよりも数学のほうが古く、コンピュータ科学者や技術者はそういったごく当たり前の数学をおおいに勉強し、参照し、活用しているものである。当然ながらコンピュータの誤差論も、数学のそれを大いに参照して成り立っている。
  4. ^ しばしばOff / Onともされるが、電気的に電流の接続が断たれる Off 状態は、電子的には電圧不定の状態であり特に集積回路では不安定な動作を起こす。そのため、Off ではなく、0V に接続した Low 状態を使う。なお内部的には Off 状態に相当する Hi-Z 状態(デジタル回路#ハイ・インピーダンス)も使われているが、ここでは扱わない。
  5. ^ 電子回路では正負を交互に使うと便利なこともある。
  6. ^ 一時期は十進法のコンピュータが作られた時期もあったが、最終的に二進法が圧倒的に選ばれることになったことで、結果として、コンピュータはブール論理と相性が良くなった。二進法の2値とブール論理体系における2状態はハードウェアレベルで直接的に対応させることができ、CPUの演算装置でブール論理演算を高速に演算できるということになり、この論理演算はコンピュータ内部の様々なレベル(機械語、高級プログラミング言語、システムソフトウェア、OS、アプリケーションソフトなどさまざまなレベル)でさまざまに活用されている。なお、ブール論理はあまりにも単純な論理であり、それだけで知的で柔軟な反応をするコンピュータを構築することは困難だったので、いろいろと模索する中で、ソフトウェアレベルでファジー論理も開発された。
  7. ^ 他にも、一部の研究者によるマイナーな研究にすぎず実用的なコンピュータは開発できていないが、DNAコンピューティングでは、DNAの分子を使いアデニン (A) 、チミン (T)、グアニン (G) 、シトシン (C)の4値(A、T、G、C)で作動するコンピュータを作ることを夢見て研究している人もいる。また目的によっては、以上のような方法とは異なる表現法が便利なこともあり、例えば、グレイコードなどもある。
  8. ^ 2の補数表現の唯一の奇妙な点として、表現可能な最も小さい数(16ビットなら −32768)の2の補数をとると自分自身になる点が上げられる。しかし、それが問題となることは滅多に無い。むしろ、符号無しの場合にオーバーフローになる演算が、2の補数表現ではごくあたりまえの、0をまたいだ計算(正確には、負の整数と非負整数にまたがった計算)であることのほうが、慣れるまでは非直感的かもしれない。
  9. ^ これを指摘している出典の著者は、世界的に有名なプログラミング言語Rubyの開発者の「まつもとゆきひろ」氏。筑波大学第三学群情報学類卒業。1993年にオブジェクト指向スクリプト言語Rubyの開発に着手し1995年に公開。その後、ネットワーク応用通信研究所のフェロー、楽天技術研究所のフェロー

出典

  1. ^ Brian Hayes, "Third Base", American Scientist 89(6): 490-494 (2001), doi:10.1511/2001.6.490
  2. ^ 『ASCII 1983年7月号』 7巻、7号、株式会社アスキー出版、1983年7月1日、94頁。 
  3. ^ a b c d まつもとゆきひろ著『まつもとゆきひろ コードの世界』日経BP、2009年。p.241
  4. ^ a b 首都大学東京(東京都立大学)、海岸・海洋工学研究室、新谷「数値計算における誤差」 「桁落ち」の節を参照のこと。





英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「コンピュータの数値表現」の関連用語

コンピュータの数値表現のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



コンピュータの数値表現のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのコンピュータの数値表現 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2024 GRAS Group, Inc.RSS