与底层设备做通讯,无论是串行通讯还是TCP,经常遇到以字节形式传输的数据格式,得到底层报文后的数据解析就成了重点。
这个百度求解的过程真是一言难尽,大部分都是复制粘贴,不知所云。
这里将最终结果记录一下。
32位二进制是4个字节,从左到右位0~31,设备间传输格式可能不同,到时候注意高低字节转换。
其中最高位bit0是符号位,0位整数,1位负数。
往后数8位,bit1~bit8是幂指数,意思就是这个byte的二进制数转成整数,然后减去127,所得的这个值m,就是2的m次方。
剩下的位是小数,从左到右开始依次数下去,第n位是1就累加上2的-n次方。
把这三个数相乘就是最终结果。
def float_t(b):
b = b.replace(" ",""