首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

单片机数据接收编码有关问题,请迷津

2012-08-16 
单片机数据接收编码问题,请高手指点迷津有一块机子,不知道怎么接收解析它的数据,望请高手帮助输出二进制数

单片机数据接收编码问题,请高手指点迷津
有一块机子,不知道怎么接收解析它的数据,望请高手帮助
输出二进制数据,其中:
1、每个数据的低字节在前,高字节在后。
2、双精度数结构(64 bits)
MSB (bit 63) = Sign
Bit 62-52 = Exponent (exp)
Bit 51-00 = Mantissa= 2exp(-1)*bit51 + 2 exp(-2)*bit50...
Value = Sign * 1.mantissa * 2 exp(EXP-1023)
数据中,由先至后的顺序为:Bit 7 - 0, Bit 15 - 8, Bit 23 - 16, Bit 31 - 24, Bit 39 - 32, Bit 47 - 40, Bit 55 - 48, Bit 63 – 54

没搞懂应该怎么解析这些数据
C#语言
小弱跪求指导。。

[解决办法]
大端数据
看这结构像是浮点数或double,如果是的话直接强制转换就行了

假设你最终接收到的数是uint64_t dat;

C/C++ code
double decode(uint64_t dat){double ret;uint16_t exp;exp=(dat&0x7ff0 0000 0000 0000)>>52;//得到EXPret=(double)(dat&0x000f ffff ffff ffff);//得到mantissaif(dat&0x8000 0000 0000 0000==0x8000 0000 0000 0000)//得到sign{ret=-ret;}for(;exp!=0;exp--)ret*=2;return ret;} 

热点排行