我在将原始字节值转换为 java 类型时遇到问题。我通过数据报套接字接收字节作为字节数组。我确切地知道哪些字节意味着什么,但我不知道如何适当地转换它们(我的意思是我知道偏移量,但不知道我认为我收到的内容是否正确;))。
例如,我想将 16 位 unsigned short 转换为 java int 类型。我在网上找到了一些例子,一个是:
public int getUShort(byte[] bytes, int offset) {
int b0 = bytes[offset] & oxFF;
int b1 = bytes[offset + 1] & oxFF;
return (b1 << 8) + (b0 << 0);
另一个是相同的,但最后一行是:
return (b0 << 8) + b1;
当然,它会给出不同的结果。哪一个是正确的?您能否也给我一个有效的示例,但是对于无符号长整数如何做同样的事情?
先感谢您!