在EEPROM中保存浮點數的方法

最近一個項目,需要在EEPROM中保存浮點數,於是想到浮點數佔四個字節,直接移位,發現得到的char型是0,看來這個方法不可行。搜索論壇,高人提議用聯合體來解決,聯合體看似與結構體相似,其不同之處在於結構體中每個變量佔用不同的內存,而聯合體共用一段內存,這就給保存浮點數提供了極大的便利。

比如我要保存一個浮點數a,我定義一個聯合體

union

{

  float x;

  uchar s[4];

}F32_Sep;

然後把a的值賦給F32_Sep.x,這樣一來其實s[0]對應了浮點數的最高位,s[3]對應其最低位,因此,保存到EEPROM中只需將s[0]~s[3]即可。

 

轉自:http://blog.sina.com.cn/s/blog_4a3946360100zp2j.html

IEEE、萬方文獻及國內外專利下載,請關注微信公衆號IEEE

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章