Java 如何将字节转换为十六进制?

2024 年 9 月 10 日 | 阅读 3 分钟

在本节中,我们将学习在 Java 中将字节转换为十六进制的不同方法。

将字节转换为十六进制

以下是将字节转换为十六进制的方法:

  • 使用 Integer.toHexString() 方法
  • 使用 String.format() 方法
  • 使用字节操作

使用 Integer.toHexString() 方法

这是 java.lang.Integer 类的一个内置函数。

语法

该函数接受一个 int 类型的参数 num,该参数将被转换为十六进制。它返回给定数字的转换后的十六进制字符串(基数为 16)。

注意:该函数不接受字符串形式的数字以及双精度或浮点数。

例如,如果我们输入 11,它将返回 b,这是 11 的等效十六进制值。

Java 将字节转换为十六进制的程序

ByteToHex1.java

输出

Byte = -52
Hexadecimal Equivalent= cc

让我们看看另一种方法。

ByteToHex2.java

输出

Hexadecimal string is: d4
Hexadecimal string is: 22
Hexadecimal string is: ffffffec

将字节数组转换为十六进制

我们也可以将字节数组转换为十六进制。以下 Java 程序演示了这一点。

ByteToHex3.java

输出

00 09 03 FF 05 08 FE

使用 String.format() 方法

在下面的 Java 程序中,我们定义了一个 byte 类型的数组。然后,定义一个循环来遍历字节数组。为了将字节数组转换为十六进制值,我们使用了 String.format() 函数。在函数内部,我们传入了 %02X,它会打印十六进制(X)值的两位,并将其存储在变量 str 中。

语法

该方法接受两个参数:

format:这是字符串的格式。

args:格式字符串的参数。它可以是零个或多个。

它返回格式化后的字符串。如果格式为 null,则抛出 NullPointerException;如果格式非法或不兼容,则抛出 IllegalFormatException

将字节数组转换为十六进制是一个非常缓慢的过程。

ByteToHex4.java

输出

0B	05	13	38	

使用字节操作

ByteToHex5.java

输出

17	15	12	0B