【发布时间】:2012-05-29 17:00:54
【问题描述】:
我必须将字节转换为有符号/无符号整数或短整数。
以下方法正确吗?哪些已签名,哪些未签名?
字节顺序: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));
}
我仅对此转换表单感兴趣。谢谢!
【问题讨论】:
-
我会使用 ByteBuffer,因为这样效率更高,您只需设置
.order(ByteOrder.LITTLE_ENDIAN)
标签: java int byte type-conversion