2017-04-10 6 views
2

で場所を超えて:IEEE 754浮動小数点表現の加算合計が、私は16ビットの2進数で2つの浮動小数点数を持っている、と私はそれらを追加しようとしているときに私が問題に遭遇16ビット形式

A = 0 11110 1111000000  
B = 0 11010 1101110000 

A + Bは私がやろうとしていることですが、ここに私の問題があります。合計を16ビット形式で表現するにはどうすればよいですか?

A = 63488

B = 3808

A + B = 67296

IEEE 754表記で16ビットに適合させることができる最大進数表現され、65504である。

MAX = 0 11110 1111111111 = 65504 

67296をどのように表しますか?

+2

AFAICT、できません。あなたはオーバーフローがあります。 –

+2

IEEE 754に従っているならば、結果は正の無限大で、 '0 11111 0000000000' –

答えて

1

問題がためA+Bを計算することである。明示的な先頭の1ビットを作成し、同じ指数に調整

A = 0 11110 1111_0000_00  
B = 0 11010 1101_1100_00 

A = 0 11110 1.1111_0000_00  
B = 0 11110 0.0001_1101_11 

追加:

A + B = 0 11110 10.0000_1101_11 

正規化し、指数オーバーフローを無視:

最寄りの、まだ無視指数オーバーフロー
A + B = 0 11111 1.0000_0110_111 

ラウンド:丸めた後

A + B = 0 11111 1.0000_0111_00 

指数は通常の数として保存するには大きすぎます。合計は正であるため、結果は正の無限大です。

A + B = 0 11111 0000_0000_00 
0

また、別の答えは、指数がすべて1であり、端数がゼロと異なるときにNaN(Not a Number)です。

+1

それは無限になると結論するよりも正確な答えのようです! – Oskarzito

関連する問題