Python oferece diversas maneiras eficientes de converter inteiros em suas representações binárias. Este guia explora vários métodos, desde funções embutidas até manipulação de bits, atendendo a diferentes níveis de habilidade e casos de uso.
Sumário
Usando a função bin()
A abordagem mais simples utiliza a função embutida do Python bin()
. Ela aceita um inteiro e retorna seu equivalente binário como uma string, prefixada com “0b”.
numero_decimal = 10
numero_binario = bin(numero_decimal)
print(f"Binário: {numero_binario}") # Saída: Binário: 0b1010
# Removendo o prefixo "0b":
numero_binario_sem_prefixo = numero_binario[2:]
print(f"Binário (sem prefixo): {numero_binario_sem_prefixo}") # Saída: Binário (sem prefixo): 1010
Usando o método format()
O método format()
oferece uma alternativa concisa:
numero_decimal = 10
numero_binario = format(numero_decimal, 'b')
print(f"Binário: {numero_binario}") # Saída: Binário: 1010
Isso produz diretamente a string binária sem o prefixo “0b”.
Usando f-strings
Introduzidas no Python 3.6, as f-strings oferecem uma solução altamente legível e moderna:
numero_decimal = 10
numero_binario = f"{numero_decimal:b}"
print(f"Binário: {numero_binario}") # Saída: Binário: 1010
Método de Manipulação de Bits
Para uma compreensão mais profunda, a conversão manual usando operadores bit a bit é instrutiva. Embora menos eficiente para números grandes, ela ilumina o processo subjacente.
def decimal_para_binario(n):
if n == 0:
return "0"
binario = ""
while n > 0:
resto = n % 2
binario = str(resto) + binario
n //= 2
return binario
numero_decimal = 10
numero_binario = decimal_para_binario(numero_decimal)
print(f"Binário: {numero_binario}") # Saída: Binário: 1010
Esta função divide repetidamente por 2, prefixando o resto ao resultado até que o quociente seja 0. Esta abordagem é mais adequada para fins educacionais ou situações que requerem controle granular.
Para a maioria das aplicações, a função bin()
ou f-strings são recomendadas por sua eficiência e legibilidade. O método de manipulação de bits oferece um valioso insight no processo de conversão.