[问题]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