How do i convert decimal to hexadecimal for floating points

48 views (last 30 days)
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

Sign in to comment.

Accepted Answer

David Goodmanson
David Goodmanson on 19 Jul 2017
HI Tousif,
try num2hex.
Walter Roberson
Walter Roberson on 25 Oct 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, [])

Sign in to comment.

More Answers (2)

mansour torabi
mansour torabi on 18 Feb 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;
x_hex = [HI,'.',HF] % Concatinate both Integer and Floating Part in HEX format
  1 Comment
Victor Tamino
Victor Tamino on 27 Aug 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.

Sign in to comment.

Giancarlo Soasti
Giancarlo Soasti on 25 Oct 2018
dec2hex is the function you are probably looking for
Giancarlo Soasti
Giancarlo Soasti on 26 Oct 2018
Yep. You are right. I should have paid attention to the images.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!