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 x
formatspecifikationen. 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’)
|