浮動小数点演算のコンピュータの構成原理のトピック
私たちは、元教師も非常に素晴らしいですし。PPTは、外のブログへのリンクを提供しています。我々は、すべてのルックPPT、pptのクラスメートは、リンクをブログ見えにくいです。。。私は無知に見えます。。。
本当に、私は例を理解していません。。。ない嘘。。それから私は、コンセプトの概念を扱います。。
浮動小数点加算および減算動作は、検査オペランド0、仮数の和の順序、正規化結果、丸め処理、オーバーフロー処理ステップを完了するために必要な場合。
:ここではいくつかの概念である
オーバーフローを計算する際のチェック:ダブルシンボルビットが。二重の符号ビットがあります。00 11は、負の数を示し、正の数を表します。
最上位ビットのキャリーと言うには、符号ビットの矛盾が発生した場合。
結果の符号ビット、2 01と10があり
、結果の符号ビットが01のとき:オーバーフローは、
符号ビットの結果は午前10時です:アンダーフローです
:オーバーフローがアンダーフローは何かということです何
百度は非常に公式の説明。。
オーバーフロー:バッファに長いデータであり、過剰バッファが高いに書き込まれたとき、より高いデータコンテンツ、命令の出力にバッファ、ポインタ、または他のプログラムの内容に格納されてもよいです彼らはカバーされたり破壊されています。可視データまたは命令のセットの小さな部分は、プログラムまたはオペレーティングシステムクラッシュのオーバーフローを引き起こす可能性があります。
アンダーフローは、下部過剰バッファに書き込まれるときに、長いデータバッファに、下部バッファポインタは、次の命令で出力の内容や他のプログラムを格納されています。
公式の説明はので、私はJike非常に無知を学びましょう。。。(IはXueyibujingであってもよい)
、単純なポイント:
時間は0に丸められたときにアンダーフローが0に近い場合
、大きな数のオーバーフローが正の無限大または負の無限大として近似した場合。
この例としては、例えば:
例えば、セットX = + 1000001、Y = + 1000011、 デュアルシンボルはY = 00、X = 00 1000001を示し 1000011、[X + Y] 正オーバーフロー= 01 0000100,01補数演算結果。
だから、オーバーフローが発生したときに?
同じ2つのシンボルの個数が追加(または異なるシンボル数を減算)している場合、演算結果がオーバーフローしてもよいです。オーバーフロー検出メカニズムは、主に二分決定符号ビットとダブル判定方法を使用していました。
別の例は、場合シンボル数が異なる減算である:
X = 0.1101、Y = -0.0111、シンボルのシンボルビットはダブルビット、X-Y相補見つける設け
[X-Y]を補= [X]補体+ [ - Y]塗りつぶし間違っ= 001101 + 000111 = 010100結果、正のスピルオーバー
従来の浮動小数点表現:
N ^ = R&E M * LT
N浮動小数点数、Rは基板であり、Eは、Mは、仮数である、注文コードです。
たとえば、次の
2 R、基板、010はEであり、注文コード、0.11011011はM、仮数であります
両方の補数形式を使用して、ポイントの減算演算を浮動します。内部コンピュータが補数形式を採用しているため。
変形補数。元のコードは、正、負のを見ることができないので。
補体は、正と負を識別することができます。
ここで2つのシンボルビットは、注文コードシンボルは二重、二重仮数符号ビットをビット、使用されています。(上記前記)
1.ステップは
大きいオーダーコードに小さな庭を注文することです。大きな舞台に小さい順序ライン。
1.1 * 1.2 * 2 ^ 2 ^ 3と4は、
1.1 * 2 ^ 3に、仮数が正しいものにシフトしています。指数プラスワン。
たとえば
ここでは、補体によって表される次のとおり
:指数2重シンボルビットで表される
[X-]フローティング= 00 010であるが、
[Y]はフローティング= 00100
仮数デュアルシンボルが示す:
[X-]フローティング= 00.11011011
11.10101100:Y元のコード
は、抗Yをコード:11.01010011
Y補:11.01010100
[Y] =フロート11.01010100
注文コードY:
ここでは、減算プラス負に相当
[-Y] =オリジナル11,100
[-Y] 011トランス= 11
[-Y] = 11100補体
我々はオーダーの指数。E =例は、 - = 00010 + Eyを 11 100 = 11 110
元のコードを取得し、この補数変換:11010
され-2
非常に小さいXの指数、右側の仮数のXステージ2、Xコードプラス2
そう[X] = 00100,00.00110110フロート(11)
前記仮数和
は反対の数プラス減数に対応し、サブトラクティブである場合。これは、補体の添加の反対側の対応する減少に変換され
正規化3.
右規則や規制には、左
が右ルール二つの異なる符号ビット。状況は、私は、符号ビットが同じ状況ではない残りの00又は11に加えて、上記述べたものです。
それは01 ...、10である...
いずれの場合も、それは正しいです。
すなわち、右の01 ... 001 ...
右の10つまり... 110 ...
その後、注文コードプラス1
同じシンボルのが、符号ビットの最大値を有する2つのビットが同じルール残っている
両方の場合には111である... 000 ...
111 ... 11 ... 0の結果左側
000 ... 00 ... 0の結果を残し
次に、注文コードに必要な移動の数を減算します。
規制は、上記の式は、左必要
指数マイナス1を左
になる:
1.00010101(10)
注文コードマイナス1
4.丸め
丸め1 0法、一定の丸め方法を切り上げ、方法を設定します
例えば、0を丸める方法を用いて、式1
のように
、最上位ビットが
1に必要です
。
最上位ビットが0に丸めダウンにする必要がある場合は、直接それを下に置きます
オーバーフロー解析5.
符号順位コードが00または01オーバーフローがされていない
だけオーバーフローさせるためのコードかどうかを決定する必要があり、仮数は決意オーバーフローを必要としません。現在、正規化数ではない
既に上述した順序コードオーバーフロー方法を決定するために
オーバーフロー01。プジョーオーバーフローカウンタ
アンダーフローのための10。設定された動作結果は指数と仮数部が0で、0であります
まあ〜
これは、浮動小数点加減算の友人である-
もし不十分な指導や改善ルックああ〜