从double到8bit的浮点量化
Floating point quantization from double to 8bit
如何将 double precision floating point
舍入到可以存储在 8bit floating point
中的值?
我正在尝试用数学方法来做,但我不知道该怎么做。
我有一个 x
double
数字,我应该找到最接近的 y
我可以用 n*2^b
和 n
和 [=17 表示=] 整数和 n
在 [-128,127]
中。但是我怎样才能找到最好的 n
和 b
?
我已经用这个算法解决了:
function y = DoubleTo8bit( x )
s=sign(x);
x=abs(x);
if x==0
y=0;
return;
end
b=floor(log2(x)+1)-8+(s>0);
m=s*round(x/2^b);
y=m*2^b;
end
如何将 double precision floating point
舍入到可以存储在 8bit floating point
中的值?
我正在尝试用数学方法来做,但我不知道该怎么做。
我有一个 x
double
数字,我应该找到最接近的 y
我可以用 n*2^b
和 n
和 [=17 表示=] 整数和 n
在 [-128,127]
中。但是我怎样才能找到最好的 n
和 b
?
我已经用这个算法解决了:
function y = DoubleTo8bit( x )
s=sign(x);
x=abs(x);
if x==0
y=0;
return;
end
b=floor(log2(x)+1)-8+(s>0);
m=s*round(x/2^b);
y=m*2^b;
end