1.5 数値の表現方法
 数値や文字は、コンピュータの内部で2進数のコードとして扱われます。10進数で入力したデータも、すべて2進数に変換されて計算が行われます。扱える数値の範囲は、前述したように、そのコンピュータのシステムで扱えるビット数によって異なります。例えば16ビットで扱える数値は、次の計算から65536種類です。なお、「^]は、べき乗を表す演算記号です。
            2^16=65536 (=216)
 正の整数に限れば0〜65535、正負の整数を表現するなら、−32768〜32767の範囲になります。これだけの数値で不足する場合は、32ビッドや64ビットというように多くの桁数を使えばよいのですが、浮動小数点という形式を利用すれば、同じビットでも扱える数値の範囲が大幅に増え、さらに計算が筒単になります。
固定小数点数
 固定小数点数は,小数点の位置を固定して数値を2進数で表現する方法で,コンピュータのワード数(語数)によって表現できる数値の範囲が限定されます。範囲外の数値はオーバーフローして正確に表現できません。1ワードが16ビットのコンピュータで,小数点を最下位に設定すると(整数のみを扱う),表現できる数値の範囲は次のようになります。

   正の整数のみを表現 …… 0 〜 216−1   (0〜65536)
   正・負の整数を表現 …… −215 〜 215−1 (−32768〜32767)

浮動小数点
 浮動小数点方式とは、数の大小に応じて小数点を移動する数字の表示法で、数値を仮数部と指数部の2つの値で表現します。 10進数を例に、浮動小数点方式の概念を簡単に説明しましょう。


 5の部分が『仮数部』、何乗かを指定した部分が『指数部』で、べき乗される数(この場合は10)を『底』と呼びます。底を決めておけば、この例のように、500000を2桁(仮数=5と指数=5)で表現することができるのです。また、カッコ内に示したように、小数点を移動させることで、どのような数値でも底と指数部を一定にして扱うことができます。
 実際には、底を2または16とし、仮数部に24ビット、指数部に7ビット、正負の符号に1ビットを使い、合計32ビットで浮動小数点数を表現します。この例で底を16とすると、指数部は7ビツト(27=128)ですから16-64〜1663、10進数に換算すると10-78〜1076の範囲となります。また、仮数部は24ビットですから224すなわち107程度で、10進数にすると7桁程度の数値となります。
 浮動小数点数では、このように非常に小さな数や非常に大きな数を扱うことができますが、すべての桁について正確な数値を表現することはできません。表現できるのは仮数部の限られた桁までで、それ以下は切り捨てられてしまいます。このように、コンピュータで数値を扱うときは、精度に限界があることをいつも念頭においておかなければなりません。

単精度,倍精度
 コンピュータの1ワ−ドの範囲内で表現できる数値を使用して表現した数値を,『単精度』といい,2ワードを使用して表現した数値を,『倍精度』という。したがって,倍精度のほうが有効桁数が多くなり,大きな数値や,精度の高い数値が表現できるにとになる。
誤差
 コンピュータでは限られた桁数で表現するので,桁数の多い数値は正確に表現できず,誤差が生じてきます。同じくらいの値の浮動小数点数同士の引き算を行うと,仮数部の先頭に多くの0が並んでしまい,正規化しても有効桁数の下位には意味のない数字が並んでしまいます。これを『けた落ち』といいます。極端にけた数の異なる浮動小数点数同士の加算や減算を行う場合,小さな数値の指数を大きな数値の指数部に合わせるので,小さな数値の下位のけたの情報が切り捨てられてしまいます。これを『情報落ち』といいます。多くのデータを集計する場合,小さな数値から順に計算を行うと,情報落ちが避けられることがあります。
2進数で負の数を表現 ---- 2の補数 計算機の計算は加算
 2進数で負の数を表現するには、「+」や「−」の符号をつけるかわりに、一般に『2の補数』という方法を使います。これは、正の2進数のビット・パターンを反転させ、その結果に1を加えたビット・パターンを、もとの数値にマイナス符号をつけた値として表現するものです。たとえば、10進数の「1234」は、16ビットの2進数に変換すると、次のようになります。
     0000 0100 1101 0010
「−1234」は、この2進数のビット・パターンを反転させて、
     1111 1011 0010 1101
とし、これに1を加え、
     1111 1011 0010 1110
となります。
 2進数を2の補数で表現する利点は、減算が簡単になることです。
 例えば、「15−5」を「15+(-5)」の形で扱って加算し、上位への桁上がりを無視すれば、減算の結果が得られます。



図 2の補数表現
 


図 2の補数による減算
 
表 Visual Basicにおけるデータ型の例
C、Fortran等では、言語により、名称、サイズが異なります