久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 求大牛,float 存放到eeprom的方法。 [打印本頁]

作者: 不再記起    時間: 2018-6-30 20:46
標題: 求大牛,float 存放到eeprom的方法。
如題, 請教下 float 的變量 如何放到eeprom里?  試過乘以倍數取整 好像這個辦法行不通。 看到有說用 float x;
int x_h, x_l

x_h = *(int * )&x; //這個取floast前面兩個字節

x_l = *(((int* )&x)+1); // 這個取后面兩個字節存放.  這種辦法 我怎么將高位 與低位 再組合回去呢?或有其它的辦法嗎?
作者: 不再記起    時間: 2018-6-30 22:40
求指點
作者: angmall    時間: 2018-6-30 22:54
用c語言關鍵字union來解決。

union xxx
{
  char c[4];
  float f;
}y;

定義一個“共用體”xxx,y作為“共用體變量”,里面再定義一個char類型的變量數組c[4]和float類型的變量f。

根據union的定義,里面的變量占用同一個內存地址。所以,c[4]和f的內存地址是一樣的,說的再通俗一點,就是c[4]的4個數實際上就是f的四個字節。


作者: 不再記起    時間: 2018-7-1 12:58
angmall 發表于 2018-6-30 22:54
用c語言關鍵字union來解決。

union xxx

您好。 char c[4]; 這個我是c[4],c[3],c[2].。。。。 這樣一個一個存入是嗎?
作者: 不再記起    時間: 2018-7-1 14:11
angmall 發表于 2018-6-30 22:54
用c語言關鍵字union來解決。

union xxx

如果存儲的話 直接將 c[4]  。。 c[3]等 一位一位存入????

作者: angmall    時間: 2018-7-1 16:03
如果存儲的話 直接將 c[3]  。。 c[0]等 一位一位存入

union xxx
{
  char c[4];
  float f;
}y;

y.f= 1234.567;

eepromSave(y.c[3]);
eepromSave(y.c[2]);
eepromSave(y.c[1]);
eepromSave(y.c[0]);



作者: cangcanglang    時間: 2018-7-2 09:22
float一般來說是32bit,但不同編譯器不保證一樣,如果你是一個環境那倒無所謂,一般來說數據傳輸或存儲都要字節序列化,json是目前最常用的方法之一




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产精品日韩欧美一区二区三区 | 午夜免费| 97精品超碰一区二区三区 | www久久国产 | 黄色毛片免费看 | 二区视频 | 国产成年人小视频 | 精品久久久久久久久久久久久久 | h在线免费观看 | 久久久久久国产精品免费 | 国产精品久久久久久238 | 久久人人爽人人爽人人片av免费 | 91热在线 | 亚洲免费在线观看视频 | 男插女下体视频 | 国偷自产av一区二区三区 | 久久精品国产一区二区电影 | 欧美精品久久 | 日本大香伊一区二区三区 | 97超在线视频 | 一区二区在线免费播放 | 国产精品成人一区二区三区吃奶 | 一区二区在线免费播放 | 日本三级全黄三级三级三级口周 | 国产在线a | 日韩视频在线免费观看 | 四季久久免费一区二区三区四区 | 在线欧美一区二区 | 久久国内精品 | 日韩激情视频一区 | 精品视频一二区 | 国产一区二区精品在线 | 中文av在线播放 | 亚州成人| 国产成人99久久亚洲综合精品 | 一级黄在线观看 | 91在线精品秘密一区二区 | 精品九九 | 日本国产一区二区 | 亚洲成人一二区 | 黄色高清视频 |