Tôi phải chuyển đổi byte thành ký/không dấu int hoặc ngắn.Chuyển đổi từ 2 hoặc 4 byte thành chữ ký/unsigned ngắn/int
Các phương pháp dưới đây là chính xác? Cái nào được ký và cái nào chưa được ký?
trật tự Byte: 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));
}
và
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));
}
Tôi quan tâm chỉ trong các hình thức chuyển đổi này. Cảm ơn!
Tôi sẽ sử dụng ByteBuffer vì điều này có thể hiệu quả hơn và bạn chỉ có thể thiết lập '.order (ByteOrder.LITTLE_ENDIAN) ' –