提问人: 提问时间:7/17/2020 更新时间:7/17/2020 访问量:291
当除数尾数全为零时的浮点算法 - 例如在 2.0 英寸的情况下 - IEEE -754
Floating Point Algorithm when Divisor Mantissa is all zeros - say in the case of 2.0 in - IEEE -754
问:
我需要为小型 SBC 实现一个浮点包,并且大多数例程现在都可以工作,但在测试过程中,我注意到这个 1(附件)中的算法不会(实际上不能)在除数尾数全为零的情况下产生正确答案,例如 500/2 将产生答案 255.0 而不是 250.0
01000000011111110100000000000000 = 0x43FA00 (500 base 10) and
01000000000000000000000000000000 = 0x400000 (2 base 10)
将产生
01000011011111111000000000000000 =0x437F0 (255 base 10)
有没有人对浮点算术或 FP 算法有很好的了解,可以提供帮助?
[]
答:
1赞
Eric Postpischil
7/17/2020
#1
显示的图表中没有任何内容显示要使用作为浮点数有效数的主要编码的位。不应将编码某物的位与事物本身混淆。例如,普通 IEEE-754 二进制浮点数的实际有效数是一些二进制数字 1.xxx......xxx 的值为 [1, 2) 和由特定格式确定的位数。(次正常数字使用数字 0.xxx...xxx.) 当数字以交换格式编码时,xxx...xxx 位存储在主有效位字段中,前导 1 位或 0 位通过指数字段进行编码。(如果指数场不为零,并且不表示无穷大或 NaN,则前导位为 1。否则为 0。
通常,实际有效数用于算术运算,而不仅仅是初级有效数字段的位。
评论