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
  8 Comments

Sign in to comment.

Accepted Answer

David Goodmanson
David Goodmanson on 19 Jul 2017
HI Tousif,
try num2hex.
  6 Comments
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;
end
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
  2 Comments
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!