Muszę konwertować bajty na podpisane/unsigned int lub krótkie.Konwertuj z 2 lub 4 bajty na podpisane/unsigned krótkie/int
Poniższe metody są prawidłowe? Który jest podpisany, a który niepodpisany?
kolejność bajtów: LITTLE_ENDIAN
public static int convertTwoBytesToInt1(byte b1, byte b2) {
return (int) ((b2 << 8) | (b1 & 0xFF));
}
VS.
public static int convertTwoBytesToInt2(byte b1, byte b2) {
return (int) (((b2 & 0xFF) << 8) | (b1 & 0xFF));
}
i
public static int convertFourBytesToInt1(byte b1, byte b2, byte b3, byte b4){
return (int) ((b4<<24)+(b3<<16)+(b2<<8)+b1);
}
VS.
public static int convertFourBytesToInt2(byte b1, byte b2, byte b3, byte b4){
return (int) (((b4 & 0xFF) << 24) | ((b3 & 0xFF) << 16) | ((b2 & 0xFF) << 8) | (b1 & 0xFF));
}
Jestem zainteresowany tylko w tych formach konwersji. Dzięki!
użyłbym ByteBuffer jak to może być dużo bardziej wydajny i można po prostu ustawić '.order (ByteOrder.LITTLE_ENDIAN)' –