在DSP上做數據處理遇到,浮點型存儲格式,轉換成十進制的浮點型參與運算。
最終通過用union與struct,問題解決了。對于這一類問題:位操作。其實每個平臺的庫代碼里有現成的例子。那就是每個平臺的庫中都有寄存器的定義。就是用union與struct,即可解決。
typedef union { float f_val; struct { unsigned long datatail: 23; unsigned long exponent : 8; unsigned long sign : 1; } bits;} myfloat;
在處理函數中,做賦值即可:
val.bits.sign = data_sign; val.bits.exponent = data_exp; val.bits.datatail= data_tail; fReceive = val.f_val; //返回 fReceive 是float型 return fReceive;
審核編輯:符乾江
-
dsp
+關注
關注
555文章
8141瀏覽量
355130 -
數據轉換
+關注
關注
0文章
90瀏覽量
18209
發布評論請先 登錄
評論