IEEE 754 浮点表示加法和超过 16 位格式的位置
IEEE 754 Floating Point Representation addition sum exceeds places in 16 bit format
我有两个 16 位二进制表示法的浮点数,当我尝试将它们相加时,我遇到了一个问题:
A = 0 11110 1111000000
B = 0 11010 1101110000
现在 A+B 是我想要做的,但这是我的问题;如何以 16 位格式表示总和?
A = 63488
乙=3808
A+B = 67296
IEEE 754表示法中16位所能容纳的最大十进制数为65504,表示为:
MAX = 0 11110 1111111111 = 65504
如何表示 67296?
问题是为
计算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
还有!另一个答案是 NaN(不是数字),当指数全为 1 且小数不为零时!
我有两个 16 位二进制表示法的浮点数,当我尝试将它们相加时,我遇到了一个问题:
A = 0 11110 1111000000
B = 0 11010 1101110000
现在 A+B 是我想要做的,但这是我的问题;如何以 16 位格式表示总和?
A = 63488
乙=3808
A+B = 67296
IEEE 754表示法中16位所能容纳的最大十进制数为65504,表示为:
MAX = 0 11110 1111111111 = 65504
如何表示 67296?
问题是为
计算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
还有!另一个答案是 NaN(不是数字),当指数全为 1 且小数不为零时!