Ik heb een Perl-code waarbij de functie hex() hex-gegevens omzet in decimaal. Hoe kan ik dit doen op Python?
Antwoord 1, autoriteit 100%
Als je met “hex data” een tekenreeks van het formulier bedoelt
s = "6a48f82d8e828ce82b82"
u kunt gebruiken
i = int(s, 16)
om het te converteren naar een geheel getal en
str(i)
om het te converteren naar een decimale tekenreeks.
Antwoord 2, autoriteit 17%
>>> int("0xff", 16)
255
of
>>> int("FFFF", 16)
65535
Antwoord 3, autoriteit 6%
Je zou een letterlijke evaluatie kunnen gebruiken:
>>> ast.literal_eval('0xdeadbeef')
3735928559
Of geef gewoon de basis op als argument voor int
:
>>> int('deadbeef', 16)
3735928559
Een truc die niet goed bekend is, als je de basis 0
opgeeft tot int
, dan zal Python proberen de basis te bepalen uit de string prefix:
>>> int("0xff", 0)
255
>>> int("0o644", 0)
420
>>> int("0b100", 0)
4
>>> int("100", 0)
100