Java 将 long 转换为 4 字节

标签 java bytearray byte long-integer unsigned

如何将 long 转换为 4 字节?我从 C 程序接收到一些输出,它使用 unsigned long。我需要读取此输出并将其转换为 4 个字节。

然而,java 使用 64 位的 signed long。有什么办法可以进行这种转换吗?

最佳答案

要读取 4 个字节作为无符号的 32 位值,假设它是小端,最简单的做法是使用 ByteBuffer

byte[] bytes = { 1,2,3,4 };
long l = ByteBuffer.wrap(bytes)
                   .order(ByteOrder.LITTLE_ENDIAN).getInt() & 0xFFFFFFFFL;

虽然 l 可以是带符号的 64 位值,但它只会介于 0 和 2^^32-1 之间,这是无符号 32 位值的范围。

关于Java 将 long 转换为 4 字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14108121/

相关文章:

c++ - 将 cv::Mat 存储在字节数组中,以便将数据传输到服务器

java - java - 如何将大型二进制字符串转换为字节数组java?

c++ - 图像格式和无符号字符数组

python - 如何重新排序Python十六进制字符串中的字节并转换为长整型

java - 使用欧几里得算法的 GCD 程序

java - 在struts的forward标签中添加点是什么意思?

java - @EJB 注入(inject)独立主客户端

java - 远程服务器的 RequestDispatcher?

.net - F#:将字符串转换为字节数组

c# - WPF 图像到字节[]