O seguinte metodo:
public String calcDecParaHex() {
String emDec = 150;
String emHex = "";
for(int i = 0;i < emDec.length();i++){
String temp = emDec.substring(i, i+1);
int mod = Integer.parseInt(temp) % 16;
emHex += mod+"";
System.out.println("O resto da divisão de "+temp+" por 16 é " +mod);
}
return emHex;
}
Eu sei que ainda falta coisa, mais olhem o que ele me retorna:
O resto da divisão de 1 por 16 é 1
O resto da divisão de 5 por 16 é 5
O resto da divisão de 0 por 16 é 0
Não estou entendendo por que ele esta me retornando que modulo desees numeros por 16 é o proprio numero…
pmlm
#2
Está correcto.
1/16 dá 0 e resto 1
5/16 dá 0 e resto 5
O teu problema está no algoritmo de converter de decimal para hexadecimal, onde não podes converter digito por digito.
Posta ai o que tem que ser feito no exercicio ou o que ter que ser feito
Opa, era isso mesmo, não é pra converter digito por digito, eh pra converter ele inteiro, deu certo aqui. Obrigado.
public String calcDecParaHex() {
int emDec = 150;
String emHex = "";
int i = 0;
while (emDec >= 1) {
i = emDec % 16;
emDec = emDec / 16;
if (i == 10) {
emHex += "A";
} else if (i == 11) {
emHex += "B";
} else if (i == 12) {
emHex += "C";
} else if (i == 13) {
emHex += "D";
} else if (i == 14) {
emHex += "E";
} else if (i == 15) {
emHex += "F";
} else {
emHex += i;
}
}
String emHexContrario = "";
for(int j = emHex.length(); j > 0;j--){
emHexContrario += emHex.substring(j-1,j);
}
return emHexContrario;
}