En passant par un peu de code Python, je remarque qu'il y a un certain nombre de représentations différentes pour les valeurs hexadécimales. Par exemple, si je choisis un certain nombre comme ceci:Différence entre différents types hexadécimaux/représentations en Python
xx = '\x03\xff'
Ensuite, la commande suivante (une version dont je me sers pour convertir peu endian big endian)
yy = hex(struct.unpack('>H', xx)[0])
retournera:
'0x3ff'
Cependant, cette commande
zz = xx.encode('hex')
retournera:
'03ff'
Enfin, l'impression juste de la valeur sur renverra cette
'\x03\xff'
Des regards de celui-ci, il y a trois différents types de hex alors.
'\xFF'
'0xFF'
'FF'
Quelle est la différence?
points bonus si quelqu'un pourrait suggérer une meilleure façon de convertir un peu endian à un grand nombre de endian. La méthode ci-dessus pour yy
ne fonctionnera pas pour les nombres supérieurs à deux octets assez obstinément et je travaille avec certaines chaînes hexadécimales de 16 octets (y compris les valeurs qui ne correspondent pas à une valeur ascii/entier)
Numpy a des routines pour aider à l'ordre des octets, http: // docs.scipy.org/doc/numpy/user/basics.byteswapping.html – tpg2114
À la vôtre. Je vais regarder ça maintenant – stephenfin