很简单的问题,不过你这样的顺序很别扭,通常大家所习惯的顺序和你的要求是反的:
{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);
    }
>>

解决方案 »

  1.   

    byte[] a={0x04,0x22,0x38,0x4E};
        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);
      

  2.   

    to  BenKelly(不断学习中...):
    你的程序应该是有问题的。
    i = (a[2] | i) << 16;