ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
浮動小数点の形式で表現される数値のこと。この形式では、数値は仮数×基数の指数乗、つまりf×reの指数表記形式(fは仮数部、rは基数部、eは指数)で表現される。
演算結果はメモリーに格納する必要があり、プログラムから触れる必要もあるため、数値の格納のされ方はプロセッサーごとに、仕様として明確に決められている。
一般には、最上位ビットから順に、次のように格納されることが多い。
指数部は一定の値を加えて非負になるようにする場合(バイアス方式、ゲタばき表現)と、2の補数表現をそのまま使用する場合がある。
基数は計算中に変動することがないため存在せず、何を使うかはあらかじめ仕様として決められ、固定化されている。
値の保存に使用する全体のビット数により、単精度(32ビット)・倍精度(64ビット)・4倍精度(128ビット)などと呼び分けることもある。
単精度は最もよく使われるもので、様々なものがある。
IEEE 754では単精度で符号1ビット+指数部8ビット+仮数部23ビットで、2を基数とし、指数部に+127のゲタをはかせるバイアス方式である。IEEEの単精度の数値範囲は、絶対値で1.40129846e−45〜3.40282347e38の範囲となる。
その他、符号1ビット+指数部7ビット+仮数部24ビットとし、16を基数とする実装もある。
倍精度の場合、IEEE 754では符号1ビット+指数部11ビット+仮数部52ビットで、1023のゲタをはかせる。
数値範囲は、絶対値で4.940656458412465d−324〜1.797693134862316d+308となる。
4倍精度の場合、IEEE 754では符号1ビット+指数部15ビット+仮数部112ビットで、16383のゲタをはかせる。
数値範囲は、絶対値で6.4751751194380251109244389582276465q−4966〜1.1897314953572317650857593266280070q+4932となる。
例えば、十進数で1357を表現すると、次のようになる。
1357=1.357×103
この場合、「1.357」が仮数部、「10」が底、「3」が指数部となる。
これを二進数で表現すると、次のようになる。
(1357)10 | =(10101001101.)2 |
=1.0101001101×210 |
この場合、「1.0101001101」が仮数部、「2」が底、「10」が指数部となる。
ここではIEEE 754の単精度を用いることとし、符号1ビット、指数部8ビット、仮数部23ビットと仮定する。
符号は、正なら0、負なら1、となる。
指数部は8ビットの二進数。−127〜128までを表わすため、+127を加算した値とする(バイアス方式)。
仮数部は、左側が必ず「1.」となるよう正規化されるので、これは略し、小数点以下のみを扱うこととする。仮数部は23ビットだが、実質24ビットの精度があることになる。
従って、次のようになる。
(1357)10=1.0101001101×210
指数部=10+127=137=(10001001)2
符号1 | 指数部8 | 仮数部23 |
0 | 10001001 | 01010011010000000000000 |
値0は、指数部(e)=仮数部(f)=0で表現する。また指数部(e)=0は正規化されてないことを現わす。
正数は符号(s)=0、負数は符号(s)=1で表わす。従って−0という値もありうる(単精度なら0x80000000が−0.0e+00になる)。
IEEE 754では指数部(e)がALL1(単精度ではe=0x7fまたは0xff)の場合、数値ではない特殊な値を表わす。この条件でかつ仮数部(f)=0の場合は∞、それ以外の場合はNaN(非数値)となる。いずれも符号(s)は有効なので、±∞、±NaNが存在することになる。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます