In questo post, vedremo come convertire un intero in una stringa esadecimale in Python.
funzione
hex()
Il modo pitonico per convertire un intero in una stringa esadecimale è usare la funzione integrata hex()
. Essa restituisce la stringa esadecimale in minuscolo con il prefisso 0x
.
1
2
3
4
5
6
7
8
|
if __name__ == ‘__main__’:
i = 4095
h = hex(i)
print(h) # ‘0xfff’
|
Per ottenere una stringa esadecimale maiuscola o per eliminare il prefisso, usate una delle soluzioni discusse qui sotto.
funzioneformat()
Un’altra opzione è usare la funzione integrata format()
che può convertire un intero in una stringa esadecimale usando la specifica di formato x
. Se usi #x
, la stringa esadecimale è preceduta da 0x
. Se usi X
o #X
, puoi ottenere una stringa esadecimale maiuscola.
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-strings
A partire da Python 3.6, potete usare f-strings. Questo può essere fatto prefissando il letterale di stringa con f
o F
. Il letterale di stringa dovrebbe essere racchiuso tra le parentesi graffe {}
e dovrebbe contenere l’intero seguito dalla specifica di formattazione x
separata da due punti :
.
Per prefissare la stringa esadecimale con 0x
, usate #x
e per ottenere una stringa esadecimale maiuscola, usate X
o #X
. Ecco come sarebbe il codice:
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’)
|