コンピュータの数値表現
八進法と十六進法は二進法の3桁と4桁に直接対応するので、コンピュータ関連の数を表現するためなどによく使われている。たとえば、整数値を二進法で 1001001101010001 などと表示しても、ぱっとその値を把握することはできない。なので、八進法や十六進法がよく使われる。
十進の体系では、10種類の数字(0 から 9)を組み合わせて数値を以下のように表す。
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ...
八進の場合、8種類の数字を使う(0 から 7)。
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 ...
すなわち、八進の "10" は十進の "8" に等しく、八進の "20" は十進の "16" に等しい。
十六進では、16種類の数字を使う(0 から 9 の後に一般に A から F までが続く)。
0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 13 14 15 16 17 18 19 1A 1B...
すなわち、十六進の "10" は十進の "16" に等しく、十六進の "20" は十進の "32" に等しい。
絶対値が非常に大きな数や非常に小さな数を扱うには、浮動小数点方式を使う。
浮動小数点数は以下のような指数表記で数値を表現する形式である。
1.1030402E5 = 1.1030402×10
この方式の利点は、仮数の桁数だけでは表せない範囲の値を指数をかけることで表せる点にある。この方式の二進版がコンピュータ向けに定義されている。近年において最も一般的なものとして IEEE 754 があり、一例として以下のような「倍精度」の二進浮動小数点数形式(binary64)を定義している。
1ビットの符号部。符号を与える。
11ビットの指数部。「エクセス1023」形式。エクセス1023とは、指数を符号なしの整数 0 から 2047 で表し、実際の指数の値はそこから 1023 を減算したものとする方式である。
52ビットの仮数部。符号なしで、小数点以下の部分だけを保持し、小数点のすぐ上には常に "1" があるものとみなす(ケチ表現。ただし非正規化数の場合を除く)。
メモリ上では上位ビットから見て符号部、指数部、仮数部の順に並ぶ。
ここで s を符号部、e を指数部、b を指数のバイアス、f を仮数部とするとき、以下の値を表す。
( − 1 ) s × 2 e − b × 1. f {\displaystyle (-1)^{s}\times 2^{e-b}\times 1.f}
ただし、e = 0のときは非正規化数
( − 1 ) s × 2 − b + 1 × 0.