我不得不字节转换为符号/无符号int或短。下面从2个或4字节转换为符号/无符号短/ INT
的方法是正确的?哪些签名和哪些未签名?
字节顺序: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));
}
和
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));
}
我感兴趣只在这种转换形式。谢谢!
我会用字节缓冲区,因为这可以更加高效,你可以设置'.order(的ByteOrder.LITTLE_ENDIAN)' –