Neste post, veremos como converter um número inteiro para uma string hexadecimal em Python.
hex() function
A forma pítonica de converter um número inteiro para uma string hexadecimal é usando a função incorporada hex()
. Ela retorna a string hexadecimal em minúsculas que é prefixada por 0x
.
1
2
3
4
5
6
7
8
>> |
if __name__ == ‘__main__’:
i = 4095
h = hex(i)
print(h) # ‘0xfff’
|
>
Para obter uma corda hexadecimal em maiúsculas ou para se livrar do prefixo, use qualquer uma das soluções discutidas abaixo.
formato() função
Outra opção é usar a função incorporada format()
que pode converter um número inteiro para uma string hexadecimal usando a especificação de formato x
. Se você usar #x
, a string hexadecimal é prefixada por 0x
. Se você usar X
ou #X
, você pode obter uma cadeia de caracteres hexadecimal em maiúsculas.
1
2
3
4
5
6
7
> |
if __name__ == ‘__main__’:
i = 4095
h = (formato(i, ‘#x’), formato(i, ‘#X’), formato(i, ‘x’), formato(i, ‘X’))
print(h) # (‘0xfff’, ‘0XFFF’, ‘fff’, ‘FFF’)
|
f-strings
Começar com Python 3.6, você pode usar f-strings. Isto pode ser feito prefixando a string literalmente com f
ou F
. A corda literal deve ser incluída dentro das chaves de caracteres {}
e deve conter o inteiro seguido da especificação de formatação x
separada por dois pontos :
.
Para prefixar a corda hexadecimal por 0x
, use #x
e para obter uma corda hexadecimal em maiúsculas, use X
ou #X
. Aqui está como o código ficaria:
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’)
> |