Hex to float like python struct.unpack()
Mostrar comentarios más antiguos
Hi
I'm trying to convert a hex string to a float in the same manner python function struct.unpack(), https://docs.python.org/3/library/struct.html , which is using the IEEE754 binary32 0r 64 depending on foat or double.
As an example I have
hex = 'C956F53D'
When i run it in a struct.unpack() i get the value:
data = 0.1198
And this is correct. However, when i try the following matlab function i get something totally different.
>> hex2dec(hex)
ans =
3.3779e+09
>> typecast(uint32(hex2dec(hex)),'single')
ans =
single
-8.8047e+05
Does anybody know the difference or what I'm doing wrong?
Thanks!
Respuesta aceptada
Más respuestas (1)
James Tursa
el 16 de Sept. de 2020
Could be a Big Endian vs Little Endian thing. E.g., inserting a swapbytes( ) step:
>> hex = 'C956F53D'
hex =
'C956F53D'
>> typecast(swapbytes(uint32(hex2dec(hex))),'single')
ans =
single
0.1198
Categorías
Más información sobre Data Type Conversion en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!