Re: 關於浮點數存儲的問題
|
||||
---|---|---|---|---|
管理員
|
是阿! 這又是更進階的寫法了, 感謝!
發表於: 2021/11/26 17:39
|
|||
|
關於浮點數存儲的問題
|
||||
---|---|---|---|---|
管理員
|
假設有一個浮點數字串 "3.14159", 想要存到 EEPROM 要怎麼做呢?
首先要看你想存的 浮點數 是字串還是真的 float 數值 如果 想直接存入 字串時,
char PI[7] = "3.14159";
如果想存入 float 數值時, 1. 要先將字串轉為 float 數值, 可以使用 C string function 來達成
char PI[7]="3.14159";
此時f_PI內容即為數值 3.14159f 2. 接著要因為EEPROM API寫入的內容為 Bytes, 因此要知道 浮點數 float 型別的儲存內容為何? 任何 C 變數型別, 依不同的編譯器及平台, 由特定長度的 Byte 來儲存其值, 其中 float 型別依照 IEEE-754 規範以 4 個 Bytes來表示, 因此我們宣告一個 int32 型別來取得 float 變數的 4 個 Byte內容, 方便 EEPROM API來存取, 下面是拆成細部分解來解釋:
char PI[7]="3.14159"; // 浮點數字串
而實際上了解記憶體型別轉換的概念後, 真正的 code 可以簡化為
char PI[7]="3.14159"; // 浮點數字串
或者也這樣寫, 但看起來比較暈
char PI[7]="3.14159"; // 浮點數字串
發表於: 2021/11/3 13:42
Edited by Libra on 2021年11月03日 14:02:01
Edited by Libra on 2021年11月03日 15:10:38 Edited by Libra on 2021年11月10日 08:08:27 |
|||
|