Comment obtenir une chaîne hexadécimale de entier signé
Dire que j'ai le classique de 4 octets entier signé, et je veux quelque chose comme
print hex(-1)
de me donner quelque chose comme
>> 0xffffffff
En réalité, le ci-dessus me donne -0x1. Je suis à la flânerie sur dans certains langage de plus bas niveau, et python en ligne de commande est quick n easy.
Donc.. est-il un moyen de le faire?
OriginalL'auteur Ellery Newcomer | 2008-10-23
Vous devez vous connecter pour publier un commentaire.
Cela fera l'affaire:
ou, dans la forme d'une fonction (et de dépouiller de la fin "L"):
ou, une variante qui renvoie toujours à taille fixe (il y a peut-être une meilleure façon de le faire):
Ou, en évitant l'hex() au total, grâce à Ignacio et bobince:
Ne comptez pas sur le 'L', suffixe, il s'en va en Python 3.0 pour hex2 coupera chiffres. L' %x mise en forme de l'opérateur est généralement un meilleur pari que hex().
Constituée de commentaires et de Ignacios option ci-dessous dans accepté de répondre (et a donné Ignacio un upvote)
OriginalL'auteur
Essayer cette fonction:
OriginalL'auteur
"0x{:04x}".format((int(my_num) & 0xFFFF), '04x') , où my_num est le nombre requis
OriginalL'auteur