I have some Perl code where the hex() function converts hex data to decimal. How can I do it on Python?
43 Answers
If by "hex data" you mean a string of the form
s = "6a48f82d8e828ce82b82"you can use
i = int(s, 16)to convert it to an integer and
str(i)to convert it to a decimal string.
8>>> int("0xff", 16)
255or
>>> int("FFFF", 16)
65535 2 You could use a literal eval:
>>> ast.literal_eval('0xdeadbeef')
3735928559Or just specify the base as argument to int:
>>> int('deadbeef', 16)
3735928559A trick that is not well known, if you specify the base 0 to int, then Python will attempt to determine the base from the string prefix:
>>> int("0xff", 0)
255
>>> int("0o644", 0)
420
>>> int("0b100", 0)
4
>>> int("100", 0)
100 0