2016-04-01 6 views
0

Как я могу округлить double precision floating point до значения, которое может быть сохранено в 8bit floating point? Я пытаюсь сделать это математически, но я понятия не имею, как это сделать.Число квантования с плавающей запятой от двух до 8 бит

У меня есть xdouble номер, и я должен найти ближайший y, что я могу выразить с n*2^b с n и b целыми и n в [-128,127]. Но как я могу найти лучшие n и b?

ответ

0

Я решил с этим алгоритмом:

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 
Смежные вопросы