浮動小数点数 ieee 754

WBOY
WBOYオリジナル
2016-08-08 09:21:202050ブラウズ

10進数をコンピュータストアドプロシージャに変換します

9.625単精度(32ビット)を例に挙げます

  1. 10進数を2進数表現に変換します
    9.625 = 1001.101 = 1 × 2 3 + 0 × 22 + 0 × 21 + 1 × 20 + 1 × 2-1 + 0 × 2-2 + 1 × 2-3

  2. 2 進数の正規化
    ieee 754 では、バイナリ表現は ±d.dd…d × βe , (0 ≤ d i < β) の形式でなければならないと規定しています
    つまり、1001.101 = 1.001 101 * 23

  3. コンピュータに保存されます
    単精度全長32ビット
    1 ~ 23 は仮数を表します。正規化後の 2 進数には小数点の左側に 1 が 1 つだけあるため、これを省略して、23 ビットを使用して 24 ビットを表すことができます。つまり、仮数は 1.001 101 の 001 101 です
    24-30 は指数を表します: 3 in 1.001 101 * 23
    31 は符号を表します: 1 は負の数を表し、0 は正の数を表します
    また、指数ビットは8ビットで0~255の値を表現できます。ただし、指数は負の場合もあります (たとえば、0.625 = 0.101 (2 進数) = 1.01 * 2-1)。したがって、IEEE 754 では、インデックスはオフセット コード (正規化されたインデックス値 + 127) を増やすことと規定されています。指数の範囲は-127~128となります。すると、上記のインデックスは 130 になります

    上記のルールに従って、2 進数の後の 10 進数は [0] [1000 0010] [0011 0100 0000 0000 0000 000] としてコンピューターに保存されます

精度は失われます

  1. 正規化後、2 進数の仮数部分は 23 ビットよりもはるかに長い場合があり、後半部分はコンピューターに保存されるときに失われることがわかります。通常は 0.58 です。

著作権声明: この記事はブロガーによるオリジナルの記事であり、ブロガーの許可なく複製することはできません。

以上、浮動小数点数 ieee 754 について、その側面も含めて紹介しましたが、PHP チュートリアルに興味のある友人の役に立てば幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。