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.