raw-bytes 値を Java 型に変換する際に問題があります。データグラム ソケットでバイト配列としてバイトを受信しています。どのバイトが何を意味するかは正確に知っていますが、それらを適切に変換する方法がわかりません (つまり、オフセットは知っていますが、受け取ったと思うものが正しいかどうかはわかりません;))。
たとえば、16 ビットの unsigned short を Java int 型に変換したいとします。私はウェブでいくつかの例を見つけました.1つは次のとおりです。
public int getUShort(byte[] bytes, int offset) {
int b0 = bytes[offset] & oxFF;
int b1 = bytes[offset + 1] & oxFF;
return (b1 << 8) + (b0 << 0);
もう1つは同じですが、最後の行は次のとおりです。
return (b0 << 8) + b1;
もちろん、それは異なる結果をもたらします。どちらが正しいですか?同じことを行う方法の有効な例も教えてください。
前もって感謝します!