一 需求描述
这两天,协议中有使用IEEE754协议的,浮点数的表示方法,为了从协议中解析出数据,还原到十进制,并设计出解析程序。
二 设计过程
协议中的温度数据为十六进制:41C7C474
1.转换成二进制格式
按协议规定分类如下三部分
0 10000011 10001111100010001110100
2.各部分计算如下:
2.1符号位S:
s=0
2.2指数位e:131
计算方法:
由10000011转换成10进制得到:
e=131
2.3尾数位m:0.56
计算方法:
10001111100010001110100 转换成10进制:4703348
得到如下:
m=4703348* 2^(-23)=0.56
3..计算:
V=(-1)^s*2^(e(值)-127)*(1+m)
=(-1)^0 * 2^(131-127)* (1+m)
=24.96
这样就能得到正确的结果,这样说大家都会了,呵呵.
网络上的文章,讲解一通之后,还是不能让读者了解过程,本文直接上解决方法。
三 结果展示
使用Qt 5.5设计出程序(附件中下载)
本文出自 “LinuxQt济南高新区” 博客,请务必保留此出处http://qtlinux.blog.51cto.com/3052744/1704696
原文地址:http://qtlinux.blog.51cto.com/3052744/1704696