Hoe converteer ik een int naar een hex hex string?

Ik wil een geheel getal (dat zal zijn <= 255), naar een hex string representatie brengen

b.v.: Ik wil 65 invoeren en '\x41' eruit krijgen, of 255 en '\xff' eruit krijgen.

Ik heb geprobeerd dit te doen met struct.pack('c',65), maar dat verslikt zich in alles boven 9 omdat het een tekenreeks van één karakter wil binnenhalen.

Oplossing

Je bent op zoek naar de chr functie.

Het lijkt erop dat u decimale representaties van gehele getallen en hex representaties van gehele getallen door elkaar gebruikt, dus het is niet helemaal duidelijk wat u nodig hebt. Gebaseerd op de beschrijving die u gaf, denk ik dat een van deze fragmenten laat zien wat u wilt.

>>> chr(0x65) == '\x65'
True

>>> hex(65)
'0x41'
>>> chr(65) == '\x41'
True

Merk op dat dit heel wat anders is dan een string die een geheel getal als hex bevat. Als dat is wat je wilt, gebruik dan de hex builtin.

Commentaren (5)

Hoe zit het met hex()?

hex(255)  # 0xff

Als je echt `` ervoor wilt hebben kan dat ook:

print '\\' + hex(255)[1:]
Commentaren (1)

Probeer het:

"0x%x" % 255 # => 0xff

of

"0x%X" % 255 # => 0xFF

Python Documentatie zegt: "bewaar dit onder Uw kussen: http://docs.python.org/library/index.html"

Commentaren (0)