How do i convert decimal to hexadecimal for floating points

28 visualizaciones (últimos 30 días)
I have attached the screenshots, in which i have extracted HOG features for a image and found its values in floating point but when i am converting the same decimal values to hexadecimal i am getting the error. please help
  8 comentarios
Guillaume
Guillaume el 24 de Jul. de 2017
@Walter,
As far as I know, all Xilinx FPGAs support single precision (and half-precision) floating-point (but not double). I commonly use single precision for some operations on my national instruments c-rio fpgas (programmed in labview). It does use a ton of gate and requires a lot more clock cycles than fixed-point though.

Iniciar sesión para comentar.

Respuesta aceptada

David Goodmanson
David Goodmanson el 19 de Jul. de 2017
HI Tousif,
try num2hex.
  6 comentarios
Tousif Ahmed
Tousif Ahmed el 31 de Jul. de 2017
how it can be changed to 8 bit from 32 bit?
Walter Roberson
Walter Roberson el 25 de Oct. de 2018
reshape((dec2bin(typecast(single(pi), 'uint8')) - '0').', 1, [])
Note that this would be in little-endian order. You might prefer
reshape((dec2bin(typecast(swapbytes(single(pi)), 'uint8')) - '0').', 1, [])

Iniciar sesión para comentar.

Más respuestas (2)

mansour torabi
mansour torabi el 18 de Feb. de 2021
You can simply write your own floating point to hex converter, like the following:
x = 5329.675; % Floating point number
xI = floor(x); % Integer Part
HI = dec2hex(xI); % Integer Part in Hex
xF = x - xI; % Floating part
HF = ''; % Floating part in Hex (begining)
ii = 0;
while xF > 0
ii = ii + 1;
ff = xF * 16^ii;
II = floor(ff);
HF = [HF, dec2hex(II)];
xF = ff - II;
end
x_hex = [HI,'.',HF] % Concatinate both Integer and Floating Part in HEX format
  1 comentario
Victor Tamino
Victor Tamino el 27 de Ag. de 2021
Unfortunately, this code works with errors. If we try to convert 0.45619303 answer is: '0.74C911835D980', but correct answer is 0.74C91100835D98. And another example: 0.38574379 -> '0.62C1AE2AF622C0', but correct answer is 0.62C01AE2AF622DC. As we can see, your function loses zeros in the hex fractional part.
Where is the mistake? I can't understand.

Iniciar sesión para comentar.


Giancarlo Soasti
Giancarlo Soasti el 25 de Oct. de 2018
dec2hex is the function you are probably looking for
  2 comentarios
Walter Roberson
Walter Roberson el 25 de Oct. de 2018
No, dec2hex only works on nonnegative integers. If you look at the images the original poster posted, they need to convert floating point numbers including fractions.
Giancarlo Soasti
Giancarlo Soasti el 26 de Oct. de 2018
Yep. You are right. I should have paid attention to the images.

Iniciar sesión para comentar.

Community Treasure Hunt

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

Start Hunting!

Translated by