[問題]floating point轉fixed point

作者: nc23nick (尼克林)   2016-01-12 14:12:49
各位前輩大大好,小弟新手遇到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
作者: sunev (Veritas)   2016-01-12 22:17:00
為什麼-1.135456d=110.1101110101b ?
作者: nc23nick (尼克林)   2016-01-13 12:44:00
因為-1.135456d=-2+0.864544d=110.1101110101b,2的補數還是說不能用2的補數去想>.<
作者: sunev (Veritas)   2016-01-15 04:37:00
fix兩邊丟掉的東西就不一樣啊....
作者: nc23nick (尼克林)   2016-01-18 15:56:00
那是不是用round比較正確,有爬到有人寫用round的....

Links booklink

Contact Us: admin [ a t ] ucptt.com