我再次在 java 中的类型转换中苦苦挣扎......我需要从 a 读取一个 5 字节的值ByteBuffer
并将该值存储在 a 中long
。
因此我这样做了:
byte msb = b.get();
int lsb = b.getInt();
System.out.println(msb + " " + lsb);
long number = ((msb << 32)) | (((long) lsb) & 0xFFFFFFFF);
System.out.println(number);
日志给了我以下结果:
1 376263385
376263385
所以 msb 和 lsb 被正确读取,但如果我将它们连接在一起,我只会得到 lsb 值。我试图对这些值进行位掩码并尝试读取不同的类型,但这也不起作用。