Algoritmo - JAVA [Ajuda] [RESOLVIDO]

1. Algoritmo - JAVA [Ajuda] [RESOLVIDO]

Meydson Costa
Geralt96

(usa Nenhuma)

Enviado em 18/10/2021 - 15:35h

Boa tarde, tô estudando Java Básico e após ver um pouco de teoria, estou fazendo exercícios. Travei em um exercício e gostaria de ajuda. O exercício em questão:

"Parte 1 do problema:

Faça um método que converta um número em Hexadecimal (1 caracter) em um numero binário (4 caracteres em uma String).

Ex: entrada: "D" saída: "1101".

O método deve receber como parâmetro um dado do tipo char e retornar uma String. Para facilitar, pode implementar a tabela de conversão hex-> bin (16 valores).

Parte 2 do problema:

Faça um programa (utilizando o método em (a)) que converta um número Hexadecimal de 4 alagarismo (em uma String) para um número binário de 16 algarismos (em uma String).

Obs: fazer uma estrutura de repetição para ler, um por um, os 4 algarismos do número hexadecimal. Para ler apenas um caracter de uma String, utilizar o método String.charAt(índice).

Ex: string x = "abcde";
System.out.printf ("%s", x.charAt(2);

Imprimirá na tela: C"

Isso foi o que consegui até então:

import java.util.Scanner;

class Main {
public static void main(String[] args) {
//char D;
//int num = (Integer.parseInt("D", 16));
//System.out.println(Integer.toBinaryString(num));
Scanner teclado = new Scanner(System.in);
System.out.printf("Informe um número em hexadecimal: ");
String numeroHexaDecimal = (teclado.nextLine());
String z = letras_b_e_c(numeroHexaDecimal.charAt(0));
System.out.print(z);
}
static String letras_b_e_c(char numeroHexa){
String numeroBinario = (String) letras_b_e_c(numeroHexa);

switch(numeroHexa){
case 'A': numeroBinario = "1010";
break;
case 'B': numeroBinario = "1011";
break;
case 'C': numeroBinario = "1100";
break;
case 'D': numeroBinario = "1101";
break;
case 'E': numeroBinario = "1110";
break;
case 'F': numeroBinario = "1111";
break;
System.out.printf(numeroBinario);

}
}
}



  


2. MELHOR RESPOSTA

Diego Mendes Rodrigues
diegomrodrigues

(usa Ubuntu)

Enviado em 18/10/2021 - 17:39h

Veja se esse código te ajuda.

public class Conversao {
public static void main(String[] args) {
/* Parte 1 */
char numeroHexa = 'D';
String numeroBin = hexToBin(numeroHexa);
System.out.println(numeroHexa + " -> " + numeroBin);

/* Parte 2 */
String valorHexa = "E2F0";
String valorBin = "";
for (String valor:valorHexa.split("")) {
valorBin += hexToBin(valor.charAt(0));
}
System.out.println(valorBin);
}

/* Converter hexadecimal para binário */
public static String hexToBin(char hexa){
String hex = String.valueOf(hexa);
hex = hex.replaceAll("0", "0000");
hex = hex.replaceAll("1", "0001");
hex = hex.replaceAll("2", "0010");
hex = hex.replaceAll("3", "0011");
hex = hex.replaceAll("4", "0100");
hex = hex.replaceAll("5", "0101");
hex = hex.replaceAll("6", "0110");
hex = hex.replaceAll("7", "0111");
hex = hex.replaceAll("8", "1000");
hex = hex.replaceAll("9", "1001");
hex = hex.replaceAll("A", "1010");
hex = hex.replaceAll("B", "1011");
hex = hex.replaceAll("C", "1100");
hex = hex.replaceAll("D", "1101");
hex = hex.replaceAll("E", "1110");
hex = hex.replaceAll("F", "1111");
return hex;
}
}



Atenciosamente,
Diego M. Rodrigues

3. Re: Algoritmo - JAVA [Ajuda]

Meydson Costa
Geralt96

(usa Nenhuma)

Enviado em 18/10/2021 - 18:20h

diegomrodrigues escreveu:

Veja se esse código te ajuda.

public class Conversao {
public static void main(String[] args) {
/* Parte 1 */
char numeroHexa = 'D';
String numeroBin = hexToBin(numeroHexa);
System.out.println(numeroHexa + " -> " + numeroBin);

/* Parte 2 */
String valorHexa = "E2F0";
String valorBin = "";
for (String valor:valorHexa.split("")) {
valorBin += hexToBin(valor.charAt(0));
}
System.out.println(valorBin);
}

/* Converter hexadecimal para binário */
public static String hexToBin(char hexa){
String hex = String.valueOf(hexa);
hex = hex.replaceAll("0", "0000");
hex = hex.replaceAll("1", "0001");
hex = hex.replaceAll("2", "0010");
hex = hex.replaceAll("3", "0011");
hex = hex.replaceAll("4", "0100");
hex = hex.replaceAll("5", "0101");
hex = hex.replaceAll("6", "0110");
hex = hex.replaceAll("7", "0111");
hex = hex.replaceAll("8", "1000");
hex = hex.replaceAll("9", "1001");
hex = hex.replaceAll("A", "1010");
hex = hex.replaceAll("B", "1011");
hex = hex.replaceAll("C", "1100");
hex = hex.replaceAll("D", "1101");
hex = hex.replaceAll("E", "1110");
hex = hex.replaceAll("F", "1111");
return hex;
}
}



Atenciosamente,
Diego M. Rodrigues


Obrigado pela resposta e pela ajuda!

Outra dúvida:

E se eu quisesse solicitar os 4 números Hexadecimais na segunda parte, para que seja mostrado na tela após conversão para binário, os números que digitei na entrada? No caso, no lugar do E2F0, solicitar a entrada dos 4 algarismos e imprimir os 4 em binário...

Na primeira parte, mudei e ficou assim:

System.out.print ("Digite um número Hexadecimal: ");
char numeroHexa = teclado.nextLine().charAt(0);
String numeroBin = hexToBin (numeroHexa);
System.out.println (numeroHexa + " -> " + numeroBin);

Grato pela ajuda!




4. Re: Algoritmo - JAVA [Ajuda] [RESOLVIDO]

Meydson Costa
Geralt96

(usa Nenhuma)

Enviado em 18/10/2021 - 19:13h

Consegui amigo!

Muitíssimo obrigado pela força!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts