Java 将 Int 转换为 Hex 并将其粘贴到字节数组元素中

标签 java arrays hex byte

我已经开始学习一点java,并试图完成一个可能非常简单的任务,但我正在努力解决它。

假设我有一个字节数组:

byte[] test = {(byte) 0x0a, (byte) 0x01, (byte) 0x01, (byte) 0x0b};

我想将 test[3](当前为数字 11 (0b) 的最后一个值)更改为随机值。

Random generator = new Random();

int newTest3 = generator.nextInt(255);

所以,现在我在 newTest3 中有一些随机数。我想将其转换为十六进制(FF),然后将其放入测试的最后一个元素或测试[3]中。

我在这方面找不到太多帮助,而且我几个小时前才刚刚学会了 java,所以任何帮助都会非常出色!

提前致谢:)

最佳答案

我不明白你为什么要经历这么多麻烦。 使用显式强制转换,就像您已经在做的那样:) 当你写:

byte[] test = {(byte) 0x0a, (byte) 0x01, (byte) 0x01, (byte) 0x0b};

0x0a 实际上是一个 int,您可以显式地将其转换为字节。您可以对 newTest3 执行相同的操作。

test[3] = (byte)  newTest3;

请注意,这种类型的转换通常会导致数据丢失,因为 byte 仅为 8 位,而 int 为 32 位。例如(FFFFFFFF 将转换为 FF)。

关于Java 将 Int 转换为 Hex 并将其粘贴到字节数组元素中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10609886/

相关文章:

java - 如何模拟具有两种不同实现的接口(interface)

java - 如何在android中对不同的图像尺寸使用不同的图像压缩

java - 读取文件并放入数组

c - 如何使用 printf() 以十六进制形式一一读取内存字节(因此没有任何格式)

excel - 如何将串行端口(例如 COM 3)的输入以十六进制形式读取到 Excel 文件中?

Java - 对多项式求反

java - 使用 boolean 值检测小写字母。结果总是正确的。

javascript - 为什么JavaScript中Masking后得到的值不准确?

c# - Java 是如何处理原始类型数组的?

java - 使用 equals() 计算数组中重复的字符串