![]() |
|
||||
Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
Você está aqui: Java ::: Estruturas de Dados ::: Pilhas |
Como converter de decimal para binário usando uma pilha em JavaQuantidade de visualizações: 942 vezes |
|
Nesta dica mostrarei como podemos usar uma pilha para converter um número decimal para um número binário. Note que uma pilha é uma estrutura do tipo LIFO (Last-In, First-Out), ou seja, o último a entrar é o primeiro a sair. Neste exemplo eu usei uma pilha construída usando um vetor (array) de inteiros, mas você pode facilmente converter para uma estrutura dinâmica. Analise cuidadosamente as funções empilhar() e desempilhar(). Elas são fundamentais para o perfeito entendimento da estrutura de dados Pilha, assim como o entendimento da lógica da conversão de decimal para binário. Veja o código Java completo para o exemplo: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
package estudos;
import java.util.Scanner;
public class Estudos {
// vamos dedinir o tamanho máximo da pilha
static final int TAM_MAX = 20;
// vamos criar a pilha de inteiros
static int pilha[] = new int[TAM_MAX];
// topo da pilha
static int topo = -1;
public static void main(String args[]) {
// para fazer a leitura da entrada do usuário
Scanner entrada = new Scanner(System.in);
// vamos pedir para o usuário informar um número decimal
System.out.print("Informe um número inteiro decimal: ");
int decimal = Integer.parseInt(entrada.nextLine());
System.out.println("O número decimal informado foi: " + decimal);
// agora vamos converter de decimal para binário
System.out.print("O número binário é: ");
decimalBinario(decimal);
}
// método que converte de decimal para binário
public static void decimalBinario(int decimal){
// resto da divisão
int resto;
// enquanto decimal for diferente de zero
while(decimal != 0){
// calcula o resto da divisão
resto = decimal % 2;
// vamos colocar resto na pilha
empilhar(resto);
decimal = decimal / 2;
}
// agora desempilhamos o resultado da pilha
while(topo != -1){
System.out.print(desempilhar());
}
// vamos quebrar uma linha aqui
System.out.println();
}
// método usado para empilhar um novo valor na pilha
public static void empilhar(int valor){
// a pilha está cheia?
if(topo == (TAM_MAX - 1)){
System.out.println("\nPilha cheia\n");
}
else{
topo = topo + 1;
pilha[topo] = valor;
}
}
// método usado para desempilhar e retornar um valor da pilha
public static int desempilhar(){
int valor = -1;
// a pilha está vazia?
if(topo == -1){
System.out.println("\nPilha vazia\n");
System.exit(1);
}
else{
valor = pilha[topo];
topo = topo - 1;
}
return valor;
}
}
Ao executar este código Java nós teremos o seguinte resultado: Informe um número inteiro decimal: 185 O número decimal informado foi: 185 O número binário é: 10111001 |
|
|
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





