Hur man konverterar ett heltal till en hexadecimal sträng i Python

I det här inlägget kommer vi att se hur man konverterar ett heltal till en hexadecimal sträng i Python.

hex() funktion

Det pythiska sättet att konvertera ett heltal till en hexadecimal sträng är att använda den inbyggda funktionen hex(). Den returnerar den hexadecimala strängen i små bokstäver som föregås av 0x.

1
2
3
4
5
6
7
8

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

Om du vill få fram en hexadecimal sträng med stor bokstavsbeteckning eller om du vill bli av med prefixet, kan du använda någon av lösningarna nedan.

format() funktion

Ett annat alternativ är att använda den inbyggda funktionen format() som kan konvertera ett heltal till en hexadecimal sträng med hjälp av xformatspecifikationen. Om du använder #x, får den hexadecimala strängen ett prefix 0x. Om du använder X eller #X kan du få en hexadecimal sträng med versaler.

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’), format(i, ’X’))
print(h) # (’0xfff’, ’0XFFF’, ’fff’, ’FFF’)

f-strings

Från och med Python 3.6 kan du använda f-strings. Detta kan göras genom att prefixera stränglitteralen med f eller F. Stränglitteralen ska vara innesluten inom parentes {} och ska innehålla heltalet följt av formateringsspecifikationen x separerade av ett kolon :.

För att prefixera den hexadecimala strängen med 0x använder du #x och för att få en hexadecimalsträng med versalbokstäver använder du X eller #X. Så här skulle koden se ut:

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

Lämna ett svar

Din e-postadress kommer inte publiceras.