help with single precision floating point arithmetic
10 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Aparna
le 9 Nov 2011
Réponse apportée : Tony Scarcia
le 10 Jan 2018
Hello Can you help me with the single precision floating point arithmetic in matlab I need to generate twiddle factors and obtain the output in the binary format( which is the standard IEEE 754 single precision 32-bit floating point format).Is there any function in MATLAB that will directly convert any value such as sine(pi/4)into the single precision format?
Thanks!
0 commentaires
Réponse acceptée
Plus de réponses (7)
Titus Edelhofer
le 9 Nov 2011
Hi,
guess what: the function is called 'single' ;-).
Titus
0 commentaires
Daniel Shub
le 9 Nov 2011
You do need to be careful with MATLAB and converting to single. Potentially not obvious is that
isequal(single(pi*pi), single(pi)*single(pi))
Also, I believe that in some cases single precision numbers are converted to double precision during calcualtions
0 commentaires
Titus Edelhofer
le 9 Nov 2011
Hi Aparna,
I understand:
num2hex(single(pi))
Is that what you are looking for?
Titus
0 commentaires
Tony Scarcia
le 10 Jan 2018
This will convert a single precision float to 32 bit binary using IEEE 754 format where;
- s is the sign bit (bit 31)
- e is the exponent (bits 30 to 23)
- m is the mantissa (bits 22 to 0)
% a is the float number
% b is the 32 bit binary converted number
b = padarray(hexToBinaryVector(num2hex(single(a)))',32-length(hexToBinaryVector(num2hex(single(a)))'),'pre')';
sign = b(1)
exp = b(2:9)
mantissa = b(10:32)
0 commentaires
Voir également
Catégories
En savoir plus sur Logical dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!