Conversão entre Bases

2 respostas
wesleysilva

Ola galera nao estou conseguindo terminar meu codigo se alguem poder me ajudar ficarrei super agradecido, tenho q criar um programa q converta entre as bases,
binario, decimal, hexadecimal e octal, olhe me codigo e me ajudem.

import java.util.Scanner;
public class Converter
{
	public static void main(String args [])
	{
        	
      	int binario=0;// 1ª variavel binario 
      	int decimal=0;// 2ªª variavel decimal 
      	int octal=0;// 3ª variavel octal 
      	int hexadecimal;// 4ª variavel hexadecimal 
      	int valor=0;// 5ª variavel numero digitado pelo usuario 
      	int resp=0;// 6ª variavel que obtem a resposta 
        
        Scanner leitor = new Scanner(System.in); 
        
        System.out.println("Bem Vindos ao Programa de Conversão Entre Bases\n\nDigite 1 para Converter entre Bases\nDigite 2 para Créditos\nDigite 3 para Sair");
        valor = leitor.nextInt();
        
        if (valor == 1)
        {	
        	System.out.println("Digite para Converter\n 1 para Binario\n 2 para Decimal\n 3 para Hexadecimal\n 4 para Octal");
        	valor = leitor.nextInt();
        
        	if (valor == 1)
			{
				System.out.println("Digite o valor em Binario");
				binario = leitor.nextInt();	
			
				resp= binario/10;
				System.out.println("valor em Decimal: "+resp); 	
			
				resp= binario/16;
				System.out.println("valor em Hexadecimal: "+resp); 	
			
				resp= binario/8;
				System.out.println("valor em Octal: "+resp); 
					
			}
		
			else if (valor == 2)
			{
				System.out.println("Digite o valor em Decimal");
				decimal = leitor.nextInt();
			
				resp= decimal/2;
				System.out.println("valor em Binario: "+resp); 
			 
				resp= decimal/16;
				System.out.println("valor em Binario: "+resp);
			
				resp= decimal/8;
					System.out.println("valor em Octal: "+resp);
			}
		
			else if (valor == 3)
			{
				System.out.println("Digite o valor em Hexadecimal");
				hexadecimal = leitor.nextInt();
				
				resp= hexadecimal/10;
				System.out.println("valor em Decimal: "+resp);
				
				resp= hexadecimal/8;
				System.out.println("valor em Octal: "+resp);
				
				resp= hexadecimal/2;
				System.out.println("valor em Binario: "+resp);
			}
			else if (valor == 4)
			{
				System.out.println("Digite o valor");
				octal = leitor.nextInt();
			
				resp= octal/2;
				System.out.println("valor em Binario: "+resp); 
			 
				resp= octal/10;
				System.out.println("valor em Decimal: "+resp);
			
				resp= octal/16;
				System.out.println("valor em Hexadecimal: "+resp);			 
			}
		}
		else if (valor ==2)
		{
			System.out.println("Programa desenvolvido pelos alunos Wesley Gomes e Ernesto");
		}
        	
		else if (valor ==3)
		{
			System.exit(0);

		}
	}
}

2 Respostas

heroijapa

Fala Wesley,

Sem chance de eu fazer seu homework aqui hehehehe, mas achei a duvida legal, e vou colocar uns tips que eu achei na net.

1) vc nao pode ler como int o input do usuario pois A significa 10 em hexa, entao letras sao validas

2) vc precisara transformar o numero para int, depois para as bases que vc quer

tipo:

String input;
// le o que o usuario digitou dentro da variavel input

int valor = Integer.parseInt( g.trim(), 16); // 16 para hexa, 10 para decimal (se for decimal nem precisa passar o segundo parametro),8 para octal 2 para binario.
pronto agora a variavel valor ja tem o numero em decimal.

agora e so mostrar ela nos outputs que vc quer

String decimal = Integer.toString( valor ); 
String binario = Integer.toString( valor, 2 ); 
String octal = Integer.toString( valor, 8 ); 
String hexadecimal = Integer.toString( valor, 16 );

acho que ja ajudei ne hehehhe

Link de onde veio a ideia:
[url]http://mindprod.com/jgloss/radix.html[/url]

wesleysilva

Ola amigo meu prof falou q nao podemos usar esse metodo nao Integer.to, tem q ser de outra forma.

Criado 5 de maio de 2011
Ultima resposta 5 de mai. de 2011
Respostas 2
Participantes 2