浮動小数点数floating point

2391 ワード

[Toc]
しょうすう
  • 正数:原符号=補符号
  • 負数:
  • 符号=正数部(マイナスを除く)のバイナリ値で、符号ビット(一番左のビット)が1
  • 逆符号=正数部(マイナスを除く)のバイナリ値をビット別にとる
  • 補符号=逆符号+1
  • 小数点はそのまま点
  • 純小数の符号、逆符号、補符号
  • 补号の导入は机械上の減算の不便を解决するためで、思想はシンボルビットを演算に参与させて、つまり补号で表す负数で加算演算を行うのは相当です...http://www.jianshu.com/p/979f6e89cb7a
    浮動小数点数
  • 浮動小数点数は次数、末尾数と符号位(数符号位)からなる
  • 単精度と二重精度
    しすう
  • 似たような形で現れる
  • 両精度・単精度ともに00000000と11111111を保持.
  • 単精度オフセット127、二精度オフセット1023.
  • 単精度の指数範囲:-126~127(1-127~254-127)
  • 二重精度の指数範囲:1-1023から2046-1023

  • 末尾
    末尾に保持する必要のある数はありません.最大は全1、最小は全0
    特別な場合
    指数はすべて1
    端数はすべて0
  • 無限大とみなす.
  • 符号ビットが1であれば負無限大、0であれば正無限大.
  • 運用は無限大であり、計算中にオーバーフローをチェックする必要はない.

  • 端数が0ではありません
  • 無効扱い結果(NaN)
  • 浮動小数点数加算
    ステップ
    graph TD
    A(   ) -->B(    )
    B --> C(   ) 
    C --> |    | D(    )
    D --> E(     )
    

    1.大次[12.有効数を加算(指数が同じで、有効数を部分的に加算)3.正規化[2]、オーバーフロー処理(科学的表現形式にする)4.丸め処理
    丸め処理
    ブログ
  • 捨入問題はいくつか例を挙げた
  • 浮動小数点数演算における切り込み問題
  • 内容
    2種類ある
  • 「0捨1入」法:右シフト時に捨てられた桁の最高位が0の場合は捨て、逆に末尾の桁に「1」を付ける.
  • 「定置1」法:数位が移されると末尾数の末尾に「1」を定置する.確率的には,失われた0と1はそれぞれ1/2である.

  • オーバーフロー処理
    ステップオーバーフロー
  • オーバーフローは、次数コードが表す可能性のある最大値の正指値を超えており、一般的には+∞と-∞とされている.
  • アンダーフローは、次数コードが示す可能性のある最小値の負の指数値を超えており、一般的には0とされている.

  • 端数オーバーフロー
  • 端数に溢れる2つの同符号端数を加算して最上位ビットアップのキャリーを生成し、端数を右にシフトし、ステップコードを1増やして再整列する.
  • 端数アンダーフロー端数を右に移動すると端数の最低有効位が端数域右端から流出し、丸め処理を行う
  • 浮動小数点数の乗算
    ステップ
    graph TD
    A(   ) -->B(    )
    B --> C(   ) 
    C --> |    | D(  )
    D --> E(     )
    

    規格化[3]
    目的
    データの表示精度を向上させるため,データの表示の一意性のために浮動小数点数の標準化とは無関係である.
    ステップ
    1つの浮動小数点数には異なる表示があります.
    0.5  
    
    0.05 * 10^1  
    
    0.005 * 10^2
    
    50 * 10 ^-2
    
    
    

    端数R進数の正規化:絶対値が1/R以上である.
    端数規格化:1/2≦M<1、最高有効ビット絶対値は1であり、そのうちMは端数である.
    コンピュータ内では、その純小数部を浮動小数点数の端数と呼び、0値以外の浮動小数点数に対しては、端数の絶対値が>=1/2であることが要求される.すなわち、端数域の最高有効位は1であるべきであり、このような表示要求を満たす浮動小数点数を規格化表示と呼ぶ:0.10001010100この表示要求を満たさない端数を、この要求を満たす端数にする操作過程とする.浮動小数点数の正規化処理と呼ばれ,端数シフトと次数コード修正により実現される.
  • 指数の大きい数を基準に、別の数の指数をずらす↩
  • ここでの規格化は指定点小数の規格化ではない.ここでの浮動小数点数正規化とは、$1.xx * 2^m$(m>=0)に正規化された科学カウントであり、定点小数の規格化要求は1/2≦M<1である.↩
  • 本の規格化には、(1)定点小数の規格化、1/2≦M<1(2)浮動小数点数加算が要求された場合、結果の規格化については、規格化科学カウントの標準操作が要求される.また、EEE 754規格に従って浮動小数点数を「規格化」することを正式には標準化と呼ぶ↩