• Prezados usuários,

    Por questões de segurança, a partir de 22/04/2024 os usuários só conseguirão logar no fórum se estiverem com a "Verificação em duas etapas" habilitada em seu perfil.

    Para habilitar a "Verificação em duas etapas" entre em sua conta e "Click" em seu nick name na parte superior da página, aparecerá opções de gestão de sua conta, entre em "Senha e segurança", a primeira opção será para habilitar a "Verificação em duas etapas".

    Clicando alí vai pedir a sua senha de acesso ao fórum, e depois vai para as opções de verificação, que serão as seguintes:

    ***Código de verificação via aplicativo*** >>>Isso permite que você gere um código de verificação usando um aplicativo em seu telefone.

    ***Email de confirmação*** >>>Isso enviará um código por e-mail para verificar seu login.

    ***Códigos alternativos*** >>>Esses códigos podem ser usados para fazer login se você não tiver acesso a outros métodos de verificação.

    Existe as 3 opções acima, e para continuar acessando o fórum a partir de 22/04/2024 você deverá habilitar uma das 03 opções.

    Tópico para tirar dúvidas>>>>https://forum.adrenaline.com.br/threads/obrigatoriedade-da-verificacao-em-duas-etapas-a-partir-de-24-04-2024-duvidas.712290/

    Atencionamente,

    Administração do Fórum Adrenaline

Algoritmo - JAVA [ajuda]

Meydson

Member
Registrado
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:

Java:
 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);

}
}
}
 
Vamos por parte, o sistema hexadecimal possui 16 algarismo, indo do 0 ao F. Foi dado a opção de implementar uma tabela de conversão, ou seja cria um metodo que recebe um numero hexa e retorna ele em binario.

Esse teu switch poderia ficar dentro do metodo e mapearia os 16 numeros hexas e não somente do A ao F.

Essa primeira parte estando correta, tu vai fazer um segundo metodo que vai receber um numero hexa de 4 algarismo e converte pra binario.

Como foi falado tu vai fazer um laço de repetição que vai ler o primeiro numero, esse numero tu joga no primeiro metodo e com isso recebe o binario, e vai fazendo isso até ler os 4 digitos.

Tu vai precisar saber fazer um metodo (função) pra converter um numero em binario e um metodo pra converter 4 numeros em binario.
 
Vamos por parte, o sistema hexadecimal possui 16 algarismo, indo do 0 ao F. Foi dado a opção de implementar uma tabela de conversão, ou seja cria um metodo que recebe um numero hexa e retorna ele em binario.

Esse teu switch poderia ficar dentro do metodo e mapearia os 16 numeros hexas e não somente do A ao F.

Essa primeira parte estando correta, tu vai fazer um segundo metodo que vai receber um numero hexa de 4 algarismo e converte pra binario.

Como foi falado tu vai fazer um laço de repetição que vai ler o primeiro numero, esse numero tu joga no primeiro metodo e com isso recebe o binario, e vai fazendo isso até ler os 4 digitos.

Tu vai precisar saber fazer um metodo (função) pra converter um numero em binario e um metodo pra converter 4 numeros em binario.
Aí que tá, eu mexo pra lá e pra cá e não consigo fazer funcionar. Não tô sabendo implementar.
Como ficaria esse código com as alterações sugeridas por vc?
 
Cara é o básico de java, cria um metodo que vai receber um valor e vai retornar outro, é o básico mesmo.

Dai dentro desse metodo tu coloca esse switch indo do 0 ao F.
 
Já que você pode implementar "uma tabela de conversão", faz um map (também chamado de dicionário), vai facilitar tua vida
E como o @JEDI falou, a tabela deve conter todos os números, não só as letras de 'A' a 'F'.

um map é algo assim...
Java:
HashMap<Char, String> tabela = new HashMap();
tabela.put("0", "0000");
tabela.put("1", "0001");
// etc, só botar todos os valores no mapa

Aí tu usa ele pra obter o valor que quer vindo do numeroHexa
Tipo assim
Java:
String numeroBinario = tabela.get(numeroHexa);
 

Users who are viewing this thread

Voltar
Topo