Ir para conteúdo
Fórum Script Brasil

NaoSou

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que NaoSou postou

  1. Boa tarde, eu estou tendo problemas com um exercicio. O exercicio pede o seguinte: Faça um programa em C++ para ler um número binario maior que zero, converter este número para hexadecimal, usando pilha e apresentar na tela, o resultado da conversão. Usando isso para iniciar a pilha #include <iostream> #include "pilha_vetor.h" int main() { int bin; PILHA p; cout<<"Insira valor Binario"; cin>>bin; iniciaPilha (p); } E isso para a conversão: public static int BinarioDec(String valorBinario) { int valor = 0; for (int i=valorBinario.length(); i>0; i--) { valor += Integer.parseInt(valorBinario.charAt(i-1)+"")*Math.pow(2, (valorBinario.length()-i)); } return valor; } public static String BinarioHexa(String binario) { char[] hexa = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; StringBuilder sb = new StringBuilder(); int posInicial = 0; int posFinal = 0; char charEncontrado = '-'; posInicial = binario.length(); posFinal = posInicial; while (posicaoInicial > 0) { posInicial = ((posInicial - 4) >= 0) ? posInicial - 4 : 0; charEncontrado = hexa[BinarioDec(binario.substring(posInicial, posFinal))]; sb.insert(0, charEncontrado); posFinal = posInicial; } return sb.toString(); } Eu estou tendo dificuldades em fazer esse procedimento utilizando a pilha. Eu pesquisei a respeito e aprendi a fazer a conversão Binário para Hexadecimal, mas não estou conseguindo colocar em código. Acredito que aquele método de conversão que eu estudei de outra fonte funciona como esperado, mas a parte do exercicio que solicita que o procedimento seja feito e demonstrado dentro de uma pilha que esta me dando dor de cabeça. Agradeço pela ajuda. Caso seja de algum valor, segue a biblioteca de pilhas que estou utilizando: http://notepad.cc/share/HO9M15VgRu Se alguém tiver uma ideia melhor para formatar esse código alem da solução do meu problema, por favor compartilhe.
×
×
  • Criar Novo...