很简单的问题,不过你这样的顺序很别扭,通常大家所习惯的顺序和你的要求是反的:
{0xF4, 0x22, 0x38, 0x4E} 这个数组转换成 INT 应该是: 0xF422384E程序有段现成的,不过顺序和你的要求是反的,你可能需要修改一下:
<<
private int bytesToInt(byte bytesValue[]) {
return (bytesValue[0]<<24&0xFF000000) +
(bytesValue[1]<<16&0xFF0000) +
(bytesValue[2]<<8&0xFF00) +
(bytesValue[3]&0xFF);
}
>>
{0xF4, 0x22, 0x38, 0x4E} 这个数组转换成 INT 应该是: 0xF422384E程序有段现成的,不过顺序和你的要求是反的,你可能需要修改一下:
<<
private int bytesToInt(byte bytesValue[]) {
return (bytesValue[0]<<24&0xFF000000) +
(bytesValue[1]<<16&0xFF0000) +
(bytesValue[2]<<8&0xFF00) +
(bytesValue[3]&0xFF);
}
>>
int i=0; i = (a[3] & 0xFF) << 24;
System.out.println(i);
i = (a[2] | i) << 16;
System.out.println(i);
i = (a[1] | i) << 8;
System.out.println(i);
i = (a[0] | i);
System.out.println(i);
你的程序应该是有问题的。
i = (a[2] | i) << 16;