繁体   English   中英

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

[英]Java Convert Int to Hex and stick it in byte array element

我已经开始学习一些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),然后将其放入测试的最后一个元素或test [3]。

我在这方面找不到太多帮助,我只是几个小时前就读了java,所以任何帮助都非常出色!

提前致谢 :)

我不明白你为什么要解决这么多麻烦。 在编写时,请使用显式强制转换:)

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

0x0a实际上是一个您显式转换为字节的int。 您可以使用newTest3进行相同的操作。

test[3] = (byte)  newTest3;

注意,这种类型的转换通常会导致数据丢失,因为字节只有8位,而int是32位。 因此,例如(将FFFFFFFF强制转换为FF)。

使用字节缓冲区

// elsewhere
import java.nio.ByteBuffer;

byte[] arr = new byte[4];
ByteBuffer buf = ByteBuffer.wrap(arr);
buf.putInt(generator.nextInt(255);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM