MODBUS单精度浮点数

modbus 4bytes转换为单精度float型

根据IEEE754标准(IEEE二进制浮点数算数标准):32位单精度格式中包含1bit符号位s,8bit阶码e,23位尾数f

举例: 原数值 0x41D26666,二进制表示为0100 0001 1101 0010 0110 0110 0110 0110 符号位s=0, 0为正,1为负 阶码e=100 0001 1,十进制为131,指数e = 131-127=4 尾数f=101 0010 0110 0110 0110 0110

尾数的处理: 1 在尾数的坐标有一个省略的小数点和1 ,加上之后变成: 1.101 0010 0110 0110 0110 0110 2 根据指数e调整尾数:负的指数值向左移动小数点,一个正的指数值向右移动小数点。1101 0.010 0110 0110 0110 0110

3 小数点左侧代表整数,右侧代表小数 整数部分:11010 = 2**4+2**3+2**1=26 小数部分:010 0110 0110 0110 0110 = 1/2**2+1/2**5+1/2**6+1/2**9+1/2**10+............=0.3

4 浮点数值 = 整数+小数 = 26.3

No comment found.

Add a comment

You must log in to post a comment.