Como Fazer um Conversor Decimal para Binário utilizando conceito de Pilhas em Python
- #Python
Neste artigo vamos aborda um código Python que implementa um conversor de números decimais para binários usando o conceito de pilha.
A pilha é uma estrutura de dados que segue a regra "último a entrar, primeiro a sair" (LIFO - Last In, First Out).
Iniciando nosso código
O código começa com a definição de uma classe chamada Pilha
, que será responsável por representar a estrutura de pilha. Em seguida, são definidos métodos para adicionar elementos (push
), remover elementos (pop
), verificar o elemento no topo (top
) e verificar se a pilha está vazia (empty
).
class Pilha():
def __init__(self):
self.data = []
def push(self, x):
self.data.append(x)
def pop(self):
if len(self.data) > 0:
return self.data.pop(-1)
def top(self):
if len(self.data) > 0:
return self.data[-1]
def empty(self):
return not len(self.data) > 0
Implementação do Conversor Decimal para Binário
Após a definição da classe Pilha
, o código principal cria uma instância dessa classe (p = Pilha()
) e solicita que o usuário insira um número decimal a ser convertido.
p = Pilha()
numeroEscolhido = int(input("Digite um numero para ser convertido... "))
Em seguida, o código calcula o valor binário do número decimal inserido pelo usuário. Usando o algoritmo de divisão sucessiva por 2 para calcular os dígitos binários.
num = numeroEscolhido
while num > 0:
resto = num % 2
num = num // 2
p.push(resto)
O resultado binário é armazenado na pilha p. Depois os elementos são removidos da pilha e armazenados em uma lista chamada resultado.
while not p.empty():
resultado.append(p.pop())
Finalmente, o código exibe o número decimal original e seu equivalente binário.
print(f"O número {numeroEscolhido} em binário é {resultado}")
Concluindo, este código Python mostra de forma simples como implementar um conversor de números decimais para binários usando o conceito de pilha. Depois de analisar e entender este código, se torna fácil a compreensão e retenção de conceitos sobre pilhas e algoritmos de conversão numérica.
Vamos Disseminar os Conhecimentos e Transbordar Tudo o que Aprendemos!
Segue o Link do meu LinkedIn: https://www.linkedin.com/in/carlos-cgs/
Segue o Link do meu GitHub com todo o código na íntegra: https://github.com/Carlos-CGS/ProjetosPython/tree/main/Conversor%20Decimal-Binario