作者nc23nick (尼克林)
看板MATLAB
標題[問題]floating point轉fixed point
時間Tue Jan 12 14:12:49 2016
各位前輩大大好,小弟新手遇到floating point轉fixed point問題
拜讀先前學長留下資料 fixed_point=(fix(d*2^k))/2^k ; % k為小數點位數
倘若小數點預計取三位,下面範例運算完結果 -1.125~=110.110 (-1.125=110.111)
想請教各位前輩為什麼結果二邊不相等呢?
ex. Decimal Binary
-1.135456 110.1101110101........
x2^3 x1000
-9.083648 110110.1110101........
fix(-9.083648)=-9 fix(110110.1110101........)=110110
/2^3 /1000
-1.125 110.110
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.120.90.130
※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1452579171.A.FF2.html
推 sunev: 為什麼-1.135456d=110.1101110101b ? 01/12 22:17
→ nc23nick: 因為-1.135456d=-2+0.864544d=110.1101110101b,2的補數 01/13 12:44
→ nc23nick: 還是說不能用2的補數去想>.< 01/13 12:45
推 sunev: fix兩邊丟掉的東西就不一樣啊.... 01/15 04:37
→ nc23nick: 那是不是用round比較正確,有爬到有人寫用round的.... 01/18 15:56