Ir ao conteúdo
  • Cadastre-se

C++, pilha e conversão para hexadecimal


NaoSoul

Posts recomendados

Boa tarde, estou cursando Analise e Desenvolvimento de Sistema 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 alguem tiver uma ideia melhor para formatar esse código alem da solução do meu problema, por favor compartilhe.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...