Converting Hex value to negative fractional decimal

Hello,
I am trying to convert the Hex value ('BF6E23F8').
I know that the answer should be (-0.93023634).
Please correct me if I am wrong, but I need to convert the Hex value to 2's complement binary, then to decimal?
I've attempted to use quite a few functions I've found online including hex2dec, Fr_bin2dec.
But I am hoping you can direct me towards the solution.
Thanks,
Ryan D'Souza

2 个评论

Why do you know the answer for this particular example is -0.93023634? Do you have other example pairs you can post?
I know the answer for this example because the Hex values were converted by someone before I got my hands on it. But they were using another application and doing the conversion by hand, so I have no indication of what steps were used.
Sure, here are some more examples :
(Hex) --> (Decimal)
3CCCE6BD -> 0.025012368
BF6E158D -> -0.930016339
C1C63C18 -> -24.77934265

请先登录,再进行评论。

 采纳的回答

It looks like your hexadecimal values are the representation of a single precision IEEE 754 number, in little endian format.
hexvalues = ['BF6E23F8';'3CCCE6BD';'BF6E158D';'C1C63C18']
hexbits = uint32(hex2dec(hexvalues)); %convert hexadecimal to 32-bit integer representation
[~, ~, endianness] = computer;
if endianness == 'B'
hexbits = swapbytes(hexbits); %on a big-endian computer, switch endianness
end
hexassingle = typecast(hexbits, 'single') %cast from integer to single

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Scripts 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by