Escreva um código em python para converter o sistema binário para o sistema decimal e um para o processo inverso.
Passo 1
Então, a gente tem um exercício que pede para criar dois códigos em Python: um que converta números do sistema binário para o sistema decimal, e outro que faça o caminho inverso, ou seja, de decimal para binário. Para resolver isso, vamos precisar entender como funcionam esses sistemas numéricos e como podemos manipular números no Python para fazer essas conversões.
Passo 2
Vamos começar convertendo um número binário para decimal. O sistema binário é base 2, o que significa que cada dígito representa uma potência de 2. Por exemplo, o binário em decimal.
1011
é igual a
No Python, podemos fazer isso iterando sobre cada dígito do número binário, multiplicando pelo valor da potência de 2 correspondente e somando tudo. Aqui está o código:
def binario_para_decimal(binario):
decimal = 0
tamanho = len(binario)
for i in range(tamanho):
digito = binario[tamanho - i - 1]
if digito == '1':
decimal += 2 ** i
return decimal
# Exemplo de uso
bin_num = "1011"
print(f"O número binário {bin_num} é {binario_para_decimal(bin_num)} em decimal.")
Passo 3
Agora, vamos fazer a conversão de decimal para binário. Para isso, dividimos o número decimal por 2 repetidamente e anotamos os restos das divisões. Esses restos, lidos de baixo para cima, formam o número binário equivalente.
No Python, podemos usar um loop para fazer essas divisões e construir a representação binária. Veja o código:
def decimal_para_binario(decimal):
if decimal == 0:
return "0"
binario = ""
while decimal > 0:
resto = decimal % 2
binario = str(resto) + binario
decimal = decimal // 2
return binario
# Exemplo de uso
dec_num = 11
print(f"O número decimal {dec_num} é {decimal_para_binario(dec_num)} em binário.")
Resposta
Aqui estão os dois códigos completos para converter entre binário e decimal:
def binario_para_decimal(binario):
decimal = 0
tamanho = len(binario)
for i in range(tamanho):
digito = binario[tamanho - i - 1]
if digito == '1':
decimal += 2 ** i
return decimal
def decimal_para_binario(decimal):
if decimal == 0:
return "0"
binario = ""
while decimal > 0:
resto = decimal % 2
binario = str(resto) + binario
decimal = decimal // 2
return binario
# Exemplos de uso
bin_num = "1011"
dec_num = 11
print(f"O número binário {bin_num} é {binario_para_decimal(bin_num)} em decimal.")
print(f"O número decimal {dec_num} é {decimal_para_binario(dec_num)} em binário.")
Quando você roda esse código, a saída será:
O número binário 1011 é 11 em decimal.
O número decimal 11 é 1011 em binário.
Exercícios relacionados
Liste os 5 primeiros termos das sequências e deduza o valor de convergência.
Dado o sistema de aritmética de ponto flutuante com três números significativos com
, represente o número
, se possível, usando Arredondamento e truncamento.
Liste os 5 primeiros termos das sequências e deduza o valor de convergência.
Liste os 5 primeiros termos das sequências e deduza o valor de convergência.