Java转换为4个字节

use*_*385 3 java unsigned byte bytearray long-integer

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

但是,java使用64位长的有符号长整数.有没有办法进行这种转换?

Pet*_*rey 9

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

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

虽然l可以是带符号的64位值,但它只能在0到2 ^^ 32-1之间,这是无符号32位值的范围.