2016-04-01 8 views
0

Wie kann ich einen double precision floating point auf den Wert runden, der in einem 8bit floating point gespeichert werden kann? Ich versuche es mathematisch zu tun, aber ich habe keine Ahnung, wie es geht.Fließkommaquantisierung von Double zu 8bit

Ich habe eine xdouble Nummer, und ich soll die nächsten y, die ich zum Ausdruck bringen kann mit n*2^b mit n und b integer und n in [-128,127] finden. Aber wie finde ich die besten n und b?

Antwort

0

ich mit diesem Algorithmus gelöst haben:

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 
Verwandte Themen