Hexadecimal no Converte certo?

5 respostas
G

Como faço para converter corretamente um numero decimal para hedecimal corretamente? Eu fiz este codigo e ta dando quase certo se não fosse a formatação do numero final. Alguem sabe como faço para arrumar isso? Ja tentei colocar como string e fazer (String,16) mas não deu certo.
O codigo é esse:

import javax.swing.*;

public class teste001{
	public static void main(String args[]){
		
		String Hexa = " ";
		int num = 233;
		
		
		while( num >=16){
			int resto = num % 16;
			num /= 16;
			Hexa = resto + Hexa;
		}
		Hexa = num + Hexa;
		System.out.println(Hexa);
		
	}
}

grato pela ajuda

5 Respostas

davidbuzatto

Vc precisa escrever o método na mão realmente?

Para inteiros vc pode fazer

String hexaNumero = numero.toString( 233, 16 );

Onde o primeiro parâmetro é o número em sí, o segundo é a base desejada.

Falow!

davidbuzatto
public class Teste2 {
	public static void main(String args[]){
 		
 		String Hexa = " ";
 		int num = 235;
 		
 		while( num >= 16 ){
 			int resto = num % 16;
 			num /= 16;
 			
 			if ( resto < 10 ) {
 				Hexa = resto + Hexa;
			} else {
 				switch ( resto ) {
 					case 10:
 						Hexa = "a" + Hexa;
 						break;
 					case 11:
 						Hexa = "b" + Hexa;
 						break;
 					case 12:
 						Hexa = "c" + Hexa;
 						break;
 					case 13:
 						Hexa = "d" + Hexa;
 						break;
 					case 14:
 						Hexa = "e" + Hexa;
 						break;
 					case 15:
 						Hexa = "f" + Hexa;
 						break;
 				}	
 			}
 		}
 		
 		if ( num < 10 ) {
			Hexa = num + Hexa;
		} else {
			switch ( num ) {
				case 10:
					Hexa = "a" + Hexa;
					break;
				case 11:
					Hexa = "b" + Hexa;
					break;
				case 12:
					Hexa = "c" + Hexa;
					break;
				case 13:
					Hexa = "d" + Hexa;
					break;
				case 14:
					Hexa = "e" + Hexa;
					break;
				case 15:
					Hexa = "f" + Hexa;
					break;
			}	
		}
 		System.out.println(Hexa);
 		System.out.println( Integer.toString( 235, 16 ) );
 		
 	}
 }

Pode ser melhorado :D

Falow!

davidbuzatto

Cria um método para retornar a letra… O código vai ficar mais enxuto…

Falow!

G

Este método é tem que ser na maão… Eu vou tentar essas ai…

A

Voce pode usar também o método da classe Integer:

String Hexa = " ";
 int num = 233;
 
 Hexa = Integer.toHexString( num );
 System.out.println(Hexa);
Criado 1 de maio de 2007
Ultima resposta 2 de mai. de 2007
Respostas 5
Participantes 3