Java 转换十六进制字符串为 Int

Rupam Yadav 2023年1月30日 2020年12月19日
  1. Java 使用 Integer.decode() 将十六进制短字符串转换为 int
  2. 使用 Long.parseLong() 将长十六进制字符串转换为 int
  3. 使用 BigInteger 将一个很长的十六进制字符串转换为 int
Java 转换十六进制字符串为 Int

本文将介绍我们可以用来将十六进制字符串转换为 int 的三种方法。十六进制或十六进制是一个 16 基数的数字系统,即有 16 种可能的符号代表数字。用来表示数字的十六进制值是十进制中的 0-9,A-F 代表十进制系统中的 10-15。

在下面的例子中,我们将看看在 Java 中把一个给定的不同长度的十六进制字符串转换为 int 的步骤。

Java 使用 Integer.decode() 将十六进制短字符串转换为 int

在第一个例子中,我们使用的是 Integer 类的 decode() 函数,该函数接收一个 String,然后返回一个基元 int

在 Java 中,一个 int 可以存储最小值-231到最大值 231-1。如果我们希望我们的结果是 int 类型的,我们就不能在长字符串上工作。本文的进一步例子将展示我们如何将较长的十六进制值转换为数值。

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

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

输出:

765

使用 Long.parseLong() 将长十六进制字符串转换为 int

正如我们上面所讨论的,我们不能将大的十六进制值转换为基元 int,因为它可以返回超出 int 容量的值。这就是为什么在这个例子中,我们使用 Long,它有一个更大的容量,-263到 263-1。

LongparseLong() 方法需要两个参数,一个字符串和一个基值,将字符串解析为一个原始的长整数。

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

输出:

2853119068

使用 BigInteger 将一个很长的十六进制字符串转换为 int

十六进制值可以用于各种用途,其中之一就是当我们想要加密一些东西的时候,这个十六进制值可能会很长。如果我们因为某些原因想把这个十六进制值转换成数值,那么我们可以使用 BigInteger,正如它的名字所示,它可以容纳大的整数。

在下面的例子中,我们将十六进制值与基值一起传递给 BigInteger 的构造函数。我们也可以从 BigInteger.intValue() 中得到 int 的值,但它只会返回起始的 32 位。

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);
    }
}

输出:

440345438517096076415390637616379300179635206140
Author: Rupam Yadav
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

相关文章 - Java Int

相关文章 - Java Hex