作者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://webptt.com/cn.aspx?n=bbs/MATLAB/M.1452579171.A.FF2.html
1F:推 sunev: 为什麽-1.135456d=110.1101110101b ? 01/12 22:17
2F:→ nc23nick: 因为-1.135456d=-2+0.864544d=110.1101110101b,2的补数 01/13 12:44
3F:→ nc23nick: 还是说不能用2的补数去想>.< 01/13 12:45
4F:推 sunev: fix两边丢掉的东西就不一样啊.... 01/15 04:37
5F:→ nc23nick: 那是不是用round比较正确,有爬到有人写用round的.... 01/18 15:56