2016-09-16 3 views
1

Si j'utilise un site Web tel que http://www.h-schmidt.net/FloatConverter/IEEE754.html pour convertir la chaîne hexadécimale '424E4B31' en float32, j'obtiens 51.57343.Conversion de l'hexadécimal en IEEE 754

-je utiliser Python pour convertir la chaîne, mais en utilisant des solutions sur StackExchange comme:

import struct, binascii 
hexbytes = b"\x42\x4E\x4B\x31" 
struct.unpack('<f',hexbytes) 

ou

struct.unpack('f', binascii.unhexlify('424E4B31')) 

Je reçois 2.9584e-09 ... pourquoi est-il différent ?

Répondre

3

Parce que l'endianisme est une chose.

>>> struct.unpack('>f',hexbytes) 
(51.573429107666016,)