我正在尝试从浮点/双精度转换为定点表示法,例如,让我们使用数字x = 0.39
作为输入。
我想将 x 转换为其无符号的 16 位定点对应物,为此C++我习惯于使用表达式xFixedPoint = round(x*2^(16))
,这将使0.39
的不动点版本25559
。
但是,如果我使用num2fixpt
函数,我无法获得该结果,我通过以下方式使用它
num2fixpt(0.39, ufix(16))
ans = 0
我在使用num2fixpt
功能时做错了什么?
>> num2fixpt(0.39,ufix(16(,2^-2(
答 =
0.2500
所以你还需要缩放以获得整数表示,即 2^16*num2fixpt(...(