Hex to float like python struct.unpack()
Mostra commenti meno recenti
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!
Risposta accettata
Più risposte (1)
James Tursa
il 16 Set 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
Categorie
Scopri di più su Data Type Conversion in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!