コンピュータ内部の四則演算

スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 |
プログラミング関連のコンテンツ
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」となります。

スポンサーリンク
 
スポンサーリンク