コンピュータの構成の原則 - 浮動小数点加算と減算

  1. 浮動小数点加算および減算を計算するステップ

前述のように、浮動小数点数は、多くの場合、次の形式で書かれている:
        X-MX * = 2EX

図の形で正規化された小数バイナリ1、元の多目的マシンコード(または補体)の絶対値よりも典型的には、浮動小数点のための前記のMx仮数。指定されたインデックスのパワーである浮動小数点数、複数のシフト(または補体)を有する通常のバイナリ整数機のEX注文コード、インデックスは最初ここで、底部2、8又は16中に使用されます図2は、一例として説明底あります。

浮動小数点加算および減算を計算するステップ
  2つの浮動小数点数と仮定
     X =のMx * 2EX、Y =私*の2Eyを

1.次の5つの手順を使用し、Y動作±Xを達成するために
  、すなわち、2つの浮動小数点の指数値の大きさは、E =元Eyを△求めて比較し、動作(1)順序.. それがゼロに等しくない場合、最初の二つは、指数値の同じ数をとるべきであること。△E | |ビット、プラスそのためコード値| E△|、すなわち、すべての仮数指数プラス1する権利、浮動小数点数これは、元の順序コード番号より小さい仮数右により達成されます一定の値(ただし、精度が悪いです)。右仮数場合、高い0を終わる、シフト参加していない符号ビットの形で元のコードを終了;仮数は、それ自体に参加するために符号ビットの形状を補完し、不変します。これらのエラーを最小限に抑えるために、可能な
  追加の行は、高い保持値は、後で使用するために丸め、いくつかのビットに右のいずれかの間に失われました。

(2)二つの操作のステップ(差)が完了した後に加算が実行される浮動小数点の仮数の増加(減少)動作を実現します。

(3)正規化された結果は、正規化数、二重相補符号ビット仮数にそれを回すことが必要であり、正規化ルールを満たさない場合、それは001××...×またはなければならない
 
  110× ×...フォーム×。ここで正規化処理ルールがある:
  結果の仮数の2つのシンボルビットの値が仮数のオーバーフローを示し、同じでない場合。このとき、結果は右仮数、指数及び右として正規化と呼ばれる値1に追加する必要があり、右調整と呼びます。

演算結果は仮数オーバーフローしないが、最大値と標準化されたルールを示すビット値と符号ビットが満たされない場合、その後のビットの最も高い数値にまで仮数は、1を左に、還元段階すべきで繰り返します値の符号ビットと異なる左ルールと呼ばれる、正規化された動作を放置され、達成されます。

(4)丸め。正しい順序や規制上の操作を実行する場合、低に値の一つ以上で終わるようになります明確な変位で、数値の精度が影響を受けている、それは使用するため切り上げのいくつかの高付加価値の明確な変位を保存することができます。一般的な原則がある家庭に丸め、およびエラーの蓄積を防ぐために、ラウンドと機会均等をしようとしていることです。一般的なプロセスにアプローチ「0」家「1」、即ち、最上位ビットが1:01を追加仮数における最後のビットの明確な変位であり、明確な変位値が0では破棄されます。プログラムの最大誤差は、2-(N + 1)です。これは、順番に、我々は再び右のレギュレーションにそれを行う必要があり、仮数オーバーフローを行うことができます。「セット」方法の別の方法は、それが、最下位置に、右除去失われた元の低値、および結果です。プログラムはまた、仮数は、より大きな又はより小さな二つの可能性となる結果を有しています。すなわち、それは正の数、1内の最下位ビットに等しいより大きな値のための1となるように丸める前に最下位ビットの仮数は、ゼロであったです。最下位ビットの仮数が1である場合、その実用的効果再設定されていない、それを仮数の低い値に等しい損失を与えます。

(5)正しい結果が、すなわち、指数オーバーフローするかどうかをチェックすることを可能にします。その指数オーバーフローが明示される浮動小数点のオーバーフロー。実際の端部を加減算する前に、オーバーフローするかどうかを確認するには、通常の注文コード、プラス(マイナス)通常動作のEND IF;指数アンダーフロー場合オーバーフロー場合、浮動小数点演算の結果は、ゼロの形で機械に設定されています、オーバーフローフラグが設定されています。

図は、浮動小数点加算および減算プロセス2.21の正規化

浮動小数点加算器の実施例を参照されたいです。
  仮定そのX = * 0.11011011 2010 = Y 2100 *(-0.10101100) 浮動小数点表現のそのそれぞれ
         オーダー番号順コードシンボル文字仮数
     [X] 11011011 00 010 = 00フローティング
     フローティング1001101010100で[Y] = 00
           補数補数

次のようにX + Yの処理が実行される:
  (1)段差のと順検索
   △をE =元Eyを= [例] フローティング+の[ - Eyを】フローティング= 00010 + 11100 = 11110すなわち、E -2△、
Mxは2ビットをシフトしなければならない小さな指数Xは、実施例2は、フローティング100,000,011,011,011の[X] = 00を与えるために添加しました

(2)和仮数
     0000110110
    + 11 01010100
    
     1110001010(3)正規化され
  、処理の結果の最大値を有するビットのシンボルビット値が左のルールを実行する結果が110001010110であり、注文コード00011。

丸め処理(4)
  0家を用いた処理方法を、ある
     1100010101
    + 1
    
     。11 00010110

(5)オーバーフロー決意
  ( -最終結果X + Y = 2011 *が得られるようにステップ00のコードシンボルは、オーバーフロービットをしない 0.11101010)を

仮数は補数で表現される場合、異なる符号ビットの最大数で正規化浮動小数点の仮数ビットを満たさなければならない、同じ正規化として成立しません。

(6)、仮数を表し、加算/減算演算後、次の6つのケースが発生する可能性があり、すなわち、符号ビットダブルコード
①XX ... X 00.1
②11.0 XX ... X
③00.0 X XX ...
④11.1 X XX ...
⑤01。 ... X-XXX
⑥10.xxx ... X-①、②の場合には、正規化数の定義を満たし、それが正規化数です。最初の③、④の場合は正規化数ではない、仮数を正規化する必要があり、このプロセスは、左側調整と呼ばれ、達成させました。終わり
正規の浮動小数点演算
浮動小数点演算は、正規化された
正規化された浮動小数点演算がされ
、それは正規化数に達するまで1つの左あたり、対応する指数を1だけ減分されます。
左規制を繰り返すことができます。

最初⑤は、⑥オーバーフロー条件はなく、浮動小数点加算および減算で、点の加算と減算と呼ばれ、これだけ時間こと仮数の絶対値が1より大きくはなく、実際のオーバーフローです。この場合にはエンディングは、正規化を達成するために、右にシフトする必要があります。このプロセスは、右規制と呼ばれています。仮数の右1それぞれ、プラス適切な注文コード。
右規制までに一度だけ。

概要:左規制プロセス、行く時間の小数点の左側の数字、注文コード-1、右規制およびその逆。

おすすめ

転載: blog.csdn.net/weixin_43752167/article/details/91385263