Jak převést celé číslo na hexadecimální řetězec v Pythonu

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‘)

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.