...高位数18007(int),低位数40960(int)。如何换算成13800(float)(单位...

发布网友 发布时间:1天前

我来回答

1个回答

热心网友 时间:22小时前

18007转换为16进制就是4657 40960转换为16进制就是A000,因此高低字合起来的16进制浮点数表达就是4657A000

然后依据下面的算法得到:
HexToFloat
STEP1:将双字的23~30位从双字中分离
与H7F800000做与操作
然后将结果右移23位
STEP2:将STEP1的结果减去127保存到A中
STEP3:将0~22位数据进行分离
与H7FFFFF进行与操作
构建循环:计算小数点后的数值
FOR I:= 0 TO 22 BY 1 DO
POWVALUE:=23-I;
RESULT:=RESULT+1/(2的POWVALUE次方)
END_IF;
结果保存为B
STEP4:(1+B)A的次方 结果保存为C
STEP5:将最高位符号位分离
与H80000000做与操作
结果与H80000000比较,如果不相等,那么C与
H80000000做或操作。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com