Sou iniciante Java e estou em um grande dilema; preciso criar um programa que converta números binários para hexadecimal

2 respostas
ElRamon

Já revirei a internet, procurei em livros e nada me ajudou muito.
Até agora consegui criar apenas isso.
obs: como estou criando um projeto, algumas variáveis aí estão sendo utilizadas para outras partes.

public static void main(String[] args) {

Scanner in = new Scanner (<a href="http://System.in">System.in</a>);

String numeroc = “”;

String binario = “”;

int numeroi = 0, escolhaBase, escolha, potencia = 0, hexa = 0;

int resultado = 0;

int resultadoAux = 0;

char resultadoHexa = a;
System.out.println(BASE 2 PARA 16);

System.out.println(Digite o número binário para a conversão);

numeroc = in.next();
for(int i = numeroc.length()-1; i >= 0; i--){
            
       resultado += Math.pow(2, potencia) * 
                Character.getNumericValue(numeroc.charAt(i));
        
       potencia++;
        
       }
        
        if(resultado == 10){
        resultadoHexa = 'A';
        System.out.print(resultadoHexa+"\n");
        }else if(resultado == 11){
        resultadoHexa = 'B';
        System.out.print(resultadoHexa+"\n");
        }else if(resultado == 12){
        resultadoHexa = 'C';
        System.out.print(resultadoHexa+"\n");
        }else if(resultado == 13){
        resultadoHexa = 'D';
        System.out.print(resultadoHexa+"\n");
        }else if(resultado == 14){
        resultadoHexa = 'E';
        System.out.print(resultadoHexa+"\n");
        }else if(resultado == 15){
        resultadoHexa = 'F';
        System.out.print(resultadoHexa+"\n");
        }else{
         System.out.println(resultado+"\n");
        }

Estou tentando achar um jeito pra poder pegar os números binários de 4 em 4 pra poder fazer os cálculos e converter.

Desculpe se cometi algum erro básico, ou postei em lugar indevido, sou iniciante tanto no site como em java… XD
Obrigado.

2 Respostas

wldomiciano

Acho que assim dá:

class Programa {
    public static void main(String[] args) {
        String bin = (new Scanner(System.in)).nextLine(); // pega a linha em binário
        int dec    = Integer.parseInt(bin, 2);            // converte pra inteiro em base 2
        String hex = Integer.toString(dec, 16);           // converte pra String já como base 16

        System.out.println( "Binary : " + bin );
        System.out.println( "Decimal: " + dec );
        System.out.println( "Hex    : " + hex );
    }
}

Encontrei aqui: https://stackoverflow.com/a/25592110/3334365

Pra achar outras possíveis soluções, pesquise por “Java binary to hex” que tem bastante coisa.


E pra quebrar a String vc poderia usar isso:

class Programa {
    public static void main(String[] args) {
        String s = "101010111100";
        System.out.println( Arrays.toString(s.split("(?<=\\G....)")) );
    }
}

Mas vc teria que encontrar uma forma de ver se s.length() retorna um múltiplo de 4 e se não, completar com zeros à esquerda. Achei aqui: https://stackoverflow.com/a/2297450/3334365

Eriquin

Olha amigo, esse app aqui pode acabar facilitando muito sua vida

Criado 8 de novembro de 2017
Ultima resposta 25 de nov. de 2019
Respostas 2
Participantes 3