Java 转换十六进制字符串为 Int
-
Java 使用
Integer.decode()
将十六进制短字符串转换为int
-
使用
Long.parseLong()
将长十六进制字符串转换为int
-
使用
BigInteger
将一个很长的十六进制字符串转换为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。
Long
的 parseLong()
方法需要两个参数,一个字符串和一个基值,将字符串解析为一个原始的长整数。
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
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 中将整型 int 转换为字符 char
- 在 Java 中将 Int 转换为 Double
- Java 中的整数列表
- 在 Java 中将 Object 转换为 Int
- Java 中将 Integer 转换为 Int
- Java 中将整数转换为字节