从double到8bit的浮点量化

Floating point quantization from double to 8bit

如何将 double precision floating point 舍入到可以存储在 8bit floating point 中的值? 我正在尝试用数学方法来做,但我不知道该怎么做。

我有一个 x double 数字,我应该找到最接近的 y 我可以用 n*2^bn 和 [=17 表示=] 整数和 n[-128,127] 中。但是我怎样才能找到最好的 nb

我已经用这个算法解决了:

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