フィルターのクリア

How do i convert decimal to hexadecimal for floating points

18 ビュー (過去 30 日間)
Tousif Ahmed
Tousif Ahmed 2017 年 7 月 19 日
コメント済み: Victor Tamino 2021 年 8 月 27 日
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 件のコメント
Guillaume
Guillaume 2017 年 7 月 24 日
@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.

サインインしてコメントする。

採用された回答

David Goodmanson
David Goodmanson 2017 年 7 月 19 日
HI Tousif,
try num2hex.
  6 件のコメント
Tousif Ahmed
Tousif Ahmed 2017 年 7 月 31 日
how it can be changed to 8 bit from 32 bit?
Walter Roberson
Walter Roberson 2018 年 10 月 25 日
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, [])

サインインしてコメントする。

その他の回答 (2 件)

mansour torabi
mansour torabi 2021 年 2 月 18 日
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 件のコメント
Victor Tamino
Victor Tamino 2021 年 8 月 27 日
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.

サインインしてコメントする。


Giancarlo Soasti
Giancarlo Soasti 2018 年 10 月 25 日
dec2hex is the function you are probably looking for
  2 件のコメント
Walter Roberson
Walter Roberson 2018 年 10 月 25 日
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 2018 年 10 月 26 日
Yep. You are right. I should have paid attention to the images.

サインインしてコメントする。

Community Treasure Hunt

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

Start Hunting!

Translated by