IEEE-754 浮点数的格式以及通讯

 时间:2024-11-11 21:07:46

IEEE-754浮点数的格式以及在计算机中的存储形式,以及经过485modbus通讯读取上来的数据解析。

工具/原料

USB转485串口线

串口调试助手热电偶多路温度测试仪

方法/步骤

1、为什么说单精度floa隋茚粟胫t浮点数的精度只有7位?这个解释起来轻松一点,精度这里指的是最大有效数字的位数,即只需要考虑尾数部分就可以啦。对脾前侍獒于float类型,尾数部分是23,转换成10进制的精度,223=10x223=10x–>x=23log2≈6.92x=23log2≈6.92,所以23位2进制最多只能表示6位10进制数,这里就是头文件中FLT_DIG=6的来由。但还有一种说法,也是网上的主流说法,二进制小数点的第一位永远都是1,可以省略,实际上二进制的精度为24,所以10进制的精度为7。单精度浮点数所能表示数据的范围:以传统的32位为依据不是IEEE754的指数形式。指数位占用8位(包含一位符号位)尾数部分占用24位(包含一位符号位)

IEEE-754 浮点数的格式以及通讯

2、浮点数IEEE754标准的表示法:IEEE754规定:(1)单精度浮点数字长32位,尾数长度23,指数长度8,指数偏移量127;双精度浮点数字长64位,尾数长度52,指数长度11,指数偏移量1023;(2)约定小数点左边隐含有一位,通常这位数是1,所以上述单精度尾数长度实际为24(默认省略小数点左边的1则为23),双精度尾数长度实际为53(默认省略小数点左边的1则为53)

IEEE-754 浮点数的格式以及通讯

IEEE-754 浮点数的格式以及通讯

3、例子2把23.7度用IEEE-754表示出来23对应的二进制为10111十进制0.7对应的小数部分为:

IEEE-754 浮点数的格式以及通讯

4、观察到用二进制表示十进制小数0.7出现了循环十进制的23.7度用二进制表示10111.101100110011001100110011001100110把上面的数表示成规范化小数形式1.01111011001100110011001故23位的尾数为01111011001100110011001指数为4加上偏移量127为131对应10000011

IEEE-754 浮点数的格式以及通讯

5、对应的16进制为41BD9999我用多路温度测试鞭徇跋尜仪器用485接口读取触点1的温度,当温度显示23.7时我用串口监控器读取上来的数据为01040441BD99惺绅寨瞀9A95A795A7是MODBUSCRC16的校验码。当多路温度测温仪显示的温度为24摄氏度的时候,我用串口监控器读取的数据为01040441C00000EF84EF84为Modbuscrc16的校验码现在开始把IEEE-754表示的数翻译成十进制的小数01000001110000000000000000000000上面的绿色为指数部分10000011对应十进制的131减去偏移量127等于4小数部分加上省略的1应该为1.1000000000000000000乘以指数4以后变为11000.000000000000

IEEE-754 浮点数的格式以及通讯

IEEE-754 浮点数的格式以及通讯

6、用多路温度探测仪器检测的温度如下:然后经检测的温度通过485modbus协议上传上来显示

IEEE-754 浮点数的格式以及通讯

起动机发出哒哒哒的声音,起动不了 杰微主板电脑如何设置bios实现u盘启动 骑车冻手没手套咋办? 如何选择低压电气设备 怎么用夸克查看天气?
热门搜索
米奇图片大全 大象头饰图片 长安欧力威图片 恐怖灵异图片 美甲彩绘图片