Java Converter Hex String em Int

Rupam Yadav 12 outubro 2023
  1. Java Converter uma string hexadecimal curta para int utilizando Integer.decode()
  2. Java Converter uma string hexadecimal longa para int Utilizando Long.parseLong()
  3. Java Converter uma string Hex muito longa em int utilizando BigInteger
Java Converter Hex String em Int

Este artigo irá introduzir os três métodos que podemos utilizar para converter uma string hexagonal em int. Hex ou hexadecimal é um sistema de numeração de 16 bases que significa que existem 16 símbolos possíveis representando números. Os valores hexadecimais utilizados para representar números são 0-9 em decimal e A-F representando 10-15 no sistema decimal.

Nos exemplos seguintes, veremos os passos para converter uma dada sequência hexadecimal de diferentes comprimentos para um int em Java.

Java Converter uma string hexadecimal curta para int utilizando Integer.decode()

No primeiro exemplo, estamos a utilizar a função decode()da classe Integer que toma um String e depois devolve um int primitivo.

Em Java, um int pode armazenar o valor mínimo de -231 até ao valor máximo de 231-1. Se quisermos o nosso resultado do tipo int, não podemos trabalhar com strings longas. Outros exemplos neste artigo mostrarão como podemos converter valores hexadecimais mais longos em valores numéricos.

public class Main {
  public static void main(String[] args) {
    String hex = "0x2fd";

    int convertedValue = Integer.decode(hex);
    System.out.print(convertedValue);
  }
}

Resultado:

765

Java Converter uma string hexadecimal longa para int Utilizando Long.parseLong()

Como discutimos acima, não podemos converter grandes valores hexadecimais em valores primitivos de int porque pode devolver valor a partir de uma capacidade de int. É por isso que neste exemplo estamos a utilizar Long que tem uma capacidade maior de -263 a 263-1.

O método parseLong() de Long leva dois parâmetros, uma string e um valor base, para analisar a string a um inteiro longo primitivo.

public class Main {
  public static void main(String[] args) {
    String hex = "AA0F245C";
    long l = Long.parseLong(hex, 16);
    System.out.println(l);
  }
}

Resultado:

2853119068

Java Converter uma string Hex muito longa em int utilizando BigInteger

Os valores hexadecimais podem ser utilizados para vários fins, e um deles é quando queremos encriptar algo, este valor hexadecimal pode ser muito longo. Se quisermos converter este valor hexadecimal para um valor numérico por alguma razão, então podemos utilizar BigInteger, que pode conter grandes números inteiros, como o seu nome indica.

No exemplo seguinte, passamos o nosso valor hexadecimal ao construtor de BigInteger com o valor base. Também podemos obter o valor int de BigInteger.intValue(), mas só devolverá os 32 bits iniciais.

import java.math.BigInteger;

public class Main {
  public static void main(String[] args) {
    String hex = "4D21C5BA77D06212F39E16BF2756E9811125F7FC";
    BigInteger bigInteger = new BigInteger(hex, 16);
    System.out.println(bigInteger);
  }
}

Resultado:

440345438517096076415390637616379300179635206140
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Artigo relacionado - Java Int

Artigo relacionado - Java Hex