作者MasterChang (我愛ASM)
看板C_and_CPP
標題Re: [問題]Float的資料用Char的Buffer傳輸
時間Thu Feb 25 17:05:22 2016
: → x000032001: 那就直接把float拆成4bytes 不是最快 02/25 16:35
: 推 qscgy4: 樓上不懂可不可以不要出來嘴? 02/25 16:49
: → qscgy4: 1.假設他的接收端浮點數不是4byte,你要怎麼處理? 02/25 16:51
: → qscgy4: 2.我說的方法可以在在不同變數大小輕易轉換,不用任何lib 02/25 16:52
: → qscgy4: 3.不用任何lib的狀況下,我是不會拆浮點數啦 02/25 16:55
: → qscgy4: 可以教一下嗎? 02/25 16:55
float 4 bytes, double 8 bytes 這個應該沒問題吧?
有疑問其實用sizeof()確認一下就好。
#pragma pack(push)
#pragma pack(1)
typedef union{
float f;
char b[4];
}Fto4Bytes_t;
#pragma pack(pop)
這個不需要library....轉個念而已。
--
不要問我從哪來,我只是一個浪跡天涯的工程師....
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.126.169.16
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1456391126.A.BCA.html
推 qscgy4: 你誤會我的意思了 02/25 17:28
→ a22326284: 小弟不才 可以請問#pragma pack的意思嗎 感恩 02/25 19:40
→ james732: pragma pack拿去google就可以找到相關資料了 02/25 19:43
推 qscgy4: sorry, 小弟不才,受教了,沒用過union這個方法 02/25 20:01
→ qscgy4: 之前都是為了避免 MUC與電腦的變數大小不同才這樣做 02/25 20:01
→ qscgy4: 更正MCU... 02/25 20:23