Why doesn't num2fixpt function return my expected counterpart fixed point value?

16 visualizaciones (últimos 30 días)
Hello,
I am trying to convert from float/double to fixed point notation, for instance let's use the number x = 0.39 as input.
I would like to convert x into its unsigned 16 bits flxed-point counterpart, to do so in C++ I am accustomed to use the expression , this will make that the fixed point version of 0.39 is 25559.
However, I cannot get that result if I make use of num2fixpt function, I am using it in the following way
num2fixpt(0.39, ufix(16))
ans =
0
What am I doing wrong when using num2fixpt function?
Thanks in advance,
Regards

Respuesta aceptada

Jyotsna Talluri
Jyotsna Talluri el 7 de Jul. de 2020
num2fixpt function does not convert double/float to a fixed point notation, instead it converts value to a nearest value represented by fixed point data type.You can convert double value to fixed point data type using fi
a = fi(0.39);
T = numerictype(0, 16, 0);
c = reinterpretcast(a, T) ;
Refer to the documentatin of numerictype and reinterpretcast
  1 comentario
Javier Cuadros
Javier Cuadros el 7 de Jul. de 2020
Thanks for your reply Jyotsna.
But then, I see that using
a = fi(0.39);
produces
a =
0.3900
Which is my floating point number but not into a fixed point notation, is it?
Thanks again,

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Numeric Types en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by