IEEE 754浮点表示加法和超过16位格式的位置

时间:2017-04-10 18:10:39

标签: floating-point ieee-754 16-bit

我有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 个答案:

答案 0 :(得分:1)

问题是计算A+B

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

答案 1 :(得分:0)

另外!当指数为全1并且分数与零不同时,另一个答案是NaN(非数字)!