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。
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
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。