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 comentarios

Why do you know the answer for this particular example is -0.93023634? Do you have other example pairs you can post?
Ryan
Ryan el 5 de Feb. de 2015
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

Iniciar sesión para comentar.

 Respuesta aceptada

Guillaume
Guillaume el 5 de Feb. de 2015
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

Más respuestas (0)

Categorías

Más información sobre Data Type Conversion en Centro de ayuda y File Exchange.

Preguntada:

el 4 de Feb. de 2015

Comentada:

el 9 de Feb. de 2015

Community Treasure Hunt

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

Start Hunting!

Translated by