V tomto příspěvku se podíváme, jak převést celé číslo na hexadecimální řetězec v Pythonu.
funkce hex()
Pythonovský způsob převodu celého čísla na hexadecimální řetězec je pomocí vestavěné funkce hex()
. Ta vrací hexadecimální řetězec psaný malými písmeny, který má předponu 0x
.
1
2
3
4
5
6
7
8
|
if __name__ == ‚__main__‘:
i = 4095
h = hex(i)
print(h) # ‚0xfff‘
|
Chcete-li získat hexadecimální řetězec s velkými písmeny nebo se zbavit předpony, použijte některé z níže uvedených řešení.
funkce format()
Další možností je použití vestavěné funkce format()
, která dokáže převést celé číslo na šestnáctkový řetězec pomocí specifikace formátu x
. Pokud použijete funkci #x
, hexadecimální řetězec bude mít předponu 0x
. Pokud použijete X
nebo #X
, můžete získat hexadecimální řetězec s velkými písmeny.
1
2
3
4
5
6
7
|
if __name__ == ‚__main__‘:
i = 4095
h = (format(i, ‚#x‘), format(i, ‚#X‘), format(i, ‚x‘), format(i, ‚X‘))
print(h) # (‚0xfff‘, ‚0XFFF‘, ‚fff‘, ‚FFF‘)
|
f-řetězce
Od verze Python 3.6 můžete používat f-řetězce. To lze provést tak, že řetězcovému literálu přidáte předponu f
nebo F
. Řetězcový literál by měl být uzavřen ve složených závorkách {}
a měl by obsahovat celé číslo následované specifikací formátování x
oddělenou dvojtečkou :
.
Pro předřazení hexadecimálního řetězce 0x
použijte #x
a pro získání velkého hexadecimálního řetězce použijte X
nebo #X
. Takto by vypadal kód:
1
2
3
4
5
6
7
|
if __name__ == ‚__main__‘:
i = 4095
h = (f'{i:#x}‘, f'{i:#X}‘, f'{i:x}‘, f'{i:X}‘)
print(h) # (‚0xfff‘, ‚0XFFF‘, ‚fff‘, ‚FFF‘)
|