Floating point 浮点量化从双精度到8位

Floating point 浮点量化从双精度到8位,floating-point,rounding,quantization,Floating Point,Rounding,Quantization,如何将双精度浮点舍入为可存储在8位浮点中的值? 我试图用数学来做,但我不知道怎么做 我有一个xdouble数字,我应该找到最接近的y,我可以用n*2^b表示n和b整数和n在[-128127]中。但是我怎样才能找到最好的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*roun

如何将
双精度浮点
舍入为可存储在
8位浮点
中的值? 我试图用数学来做,但我不知道怎么做


我有一个
x
double
数字,我应该找到最接近的
y
,我可以用
n*2^b
表示
n
b
整数和
n
[-128127]
中。但是我怎样才能找到最好的
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