Sådan konverteres et heltal til en hexadecimal streng i Python

I dette indlæg vil vi se, hvordan man konverterer et heltal til en hexadecimal streng i Python.

hex()-funktionen

Den pythiske måde at konvertere et heltal til en hexadecimal streng på er ved hjælp af den indbyggede funktion hex(). Den returnerer den hexadecimale streng i små bogstaver, som har 0x som præfiks.

1
2
3
3
4
5
6
7
8

if __name__ == ‘__main__’:
i = 4095
h = hex(i)
print(h) # ‘0xfff’

For at få en hexadecimal streng med store bogstaver eller for at slippe af med præfikset skal du bruge en af de løsninger, der er beskrevet nedenfor.

format() funktion

En anden mulighed er at bruge den indbyggede funktion format(), som kan konvertere et heltal til en hexadecimal streng ved hjælp af x-formatspecifikationen. Hvis du bruger #x, får den hexadecimale streng et præfiks med 0x. Hvis du bruger X eller #X, kan du få en hexadecimal streng med store bogstaver.

1
2
3
3
4
5
6
7

if __name__ == ‘__main__’:
i = 4095
h = (format(i, ‘#x’), format(i, ‘#X’), format(i, ‘x’), format(i, ‘x’), format(i, ‘X’))
print(h) # (‘0xfff’, ‘0XFFF’, ‘0XFFF’, ‘fff’, ‘FFF’)

f-strings

Fra Python 3.6 kan du bruge f-strings. Dette kan gøres ved at sætte f eller F foran strenglitteraturen. Strenglitteralen skal være omsluttet af de svungne parenteser {} og skal indeholde det hele tal efterfulgt af formateringsspecifikationen x adskilt af et kolon :.

For at give hexadecimalstrengen et præfiks med 0x skal du bruge #x, og for at få en hexadecimalstreng med store bogstaver skal du bruge X eller #X. Sådan ville koden se ud:

1
2
3
3
4
5
6
7

if __name__ == ‘__main__’:
i = 4095
h = (f'{i:#x}’, f'{i:#X}’, f'{i:x}’, f'{i:X}’, f'{i:X}’)
print(h) # (‘0xfff’, ‘0XFFF’, ‘fff’, ‘FFF’)

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.