Prevod hexadecimálneho reťazca na int v jazyku Python

Ako v jazyku Python skonvertovať hexadecimálny reťazec na int?

Môžem ho mať ako "0xffff" alebo len "ffff".

Riešenie

Bez prefixu 0x musíte explicitne určiť základňu, inak to nie je možné zistiť:

x = int("deadbeef", 16)

S prefixom 0x dokáže Python rozlíšiť hexadecimálny a decimálny základ automaticky.

>>> print int("0xdeadbeef", 0)
3735928559
>>> print int("10", 0)
10

(Na vyvolanie tohto správania sa pri hádaní prefixu musíte ako základ zadať 0; vynechanie druhého parametra znamená, že sa predpokladá základ 10.)

Komentáre (3)

int(hexString, 16) vykoná tento trik a funguje s prefixom 0x aj bez neho:

>>> int("a", 16)
10
>>> int("0xa",16)
10
Komentáre (0)

Pre ľubovoľný reťazec s:

int(s, 16)
Komentáre (0)