天天看點

字元數組轉單精度浮點型數的方法(hex to float)

網上直接給出了下面的方法:

char m[]={0x11, 0x22, 0x33, 0x44};

float f=*((float *)m);    //這兒的float占4個位元組

經本人測試,上面的方法在原理上是完全正确的。

但是,請注意!

不同的系統對于發送來的位元組的順序可能不同,在modbus中的位元組順序為:

modbus發送來的順序為:{0x84, 0x31, 0x43, 0x62};          (1)

而變換為float時的順序應該為:{0x31, 0x84, 0x62, 0x43};           (2)

float f=*((float *)m);

這時f的值是正确的,為(2)轉換為float的結果為:226.516

繼續閱讀