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

 时间:2024-10-12 06:29:48

1、为什么说单精度float 浮点数的精度只有7位 ?这个解释起来轻松一点,精度这里指的是最大有效数字的位数,即只需要考虑尾数部分就可以啦。对于float类型,尾数部分是23,转换成10进制的精度,223=10x223=10x –> x=23log2≈6.92 x=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.10110 0110 0110 0110 0110 0110 0110 0110把上面的数表示成规范化小数形式1.0111 1011 0011 0011 0011 001故23位的尾数为0111 1011 0011 0011 0011 001指数为4 加上偏移量127 为131 对应 1000 0011

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

5、对应的16进制为 41BD 9999我用多路温度测试鞭徇跋尜仪器 用485接口读取 触点1的温度, 当温度 显示 23.7时我用串口监控器读取上来的数据为 01 04 04 41 BD 99 9A 95 A7 95 A7是MODBUS CRC16 的校验码。当多路温度测温仪显示的温度为24摄氏度的时候,我用串口监控器读取的数据为01 04 04 41 C0 00 00 EF 84 EF 84 为Modbus crc16 的校验码现在开始 把IEEE-754 表示的数 翻译成十进制的小数0100 0001 1100 0000 0000 0000 0000 0000上面的绿色为指数部分 100 00011 对应十进制的131 减去偏移量127 等于 4小数部分 加上省略的1 应该为1.100 0000 0000 0000 0000乘以指数4以后 变为11000.0000 0000 0000

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

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

IEEE-754 浮点数的格式以及通讯
  • 起动机发出哒哒哒的声音,起动不了
  • 杰微主板电脑如何设置bios实现u盘启动
  • 骑车冻手没手套咋办?
  • 如何选择低压电气设备
  • 怎么用夸克查看天气?
  • 热门搜索
    端午节的手抄报图片 清明节手抄报图片大全 读书心得手抄报 光盘行动手抄报一等奖 新年手抄报图片 新学期手抄报内容 国庆节手抄报简单好看 关于英雄的手抄报 三八妇女节手抄报简单 感恩手抄报图片大全