コンピュータ内部の四則演算
スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
加算 2.5 + 0.3 の場合
スポンサーリンク
+2.500E+0 +3.000E-1
2つの数値は上記の状態となり、保護桁が一桁追加される。
保護桁とは、計算の誤差が小さくなるために、仮数部に追加される桁のことです。
+2.5000E+0 +3.0000E-1
その後、指数部をそろえるために、指数が小さいほうの数字の仮数部分が一桁右にシフトされ、指数部がインクリメントされます。
その後、2つの仮数部が足されて、結果の指数部は揃えられた指数と等しいものとなります。
+2.5000E+0 +0.3000E-0 ----------- +2.8000E+0
これで計算は一応完成ですが、さらに保護桁を丸めて・・・
+2.8000E+0 ↓ +2.800E+0
となり、加算の結果が「2.8」と得られます。
減算 2.5 – 0.3 の場合
+2.500E+0 +3.000E-1
まず、2番目のオペランドの符号が変えられます。
+2.500E+0 -3.000E-1
あとの手順は、加算と同じです。
乗算 2.5 * 0.3 の場合
+2.500E+0 +3.000E-1
1.保護桁を追加します。
2.仮数部を掛けます。
3.指数部を足します。
その結果・・・
+2.5000E+0 +3.0000E-1 ------------- +7.5000E-1
正規化を行った後、保護桁が丸められます。
+0.7500E+0
となり、数値「0.75」となります。
乗算の場合、仮数部の乗算と指数部の加算が行われるだけで、オペランドの仮数部の桁のシフトは行われません。
このため、乗算は加算に比べて高速であると言われます。(特に整数オペランドの場合)
除算 2.5 / 0.3 の場合
+2.500E+0 +3.000E-1
1.保護桁を追加します。
2.仮数部を割ります。
3.指数部を引きます。
その結果・・・
+2.500E+0 +3.000E-1 ------------ +0.8333E+1
となり、保護桁を丸めて、「8.333」となります。
スポンサーリンク
<< 前の記事 : 浮動小数点型のフォーマット
- - 関連記事 -
- 浮動小数点型のフォーマット
スポンサーリンク