param[0]=16#55
      param[1]=16#66    param[2]=16#77    param[3]=16#88 
这是什么意思?
用long试试看

解决方案 »

  1.   

    楼主的param[index]&0xff;就已经把param[index]变成了一个负数了啊!几个负数相加计算出来的结果当然也就是负数了。如果要保持原来的正数,可以&0111 1111也就是7f,而不是ff了。public class Test { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub int[] param = new int[4];
    param[0] = 0x55;
    param[1] = 0x66;
    param[2] = 0x77;
    param[3] = 0x88;
    int fLqValue01 = (int) param[0] & 0x7f;
    fLqValue01 += (int) (param[1] & 0x7f) * 256;
    fLqValue01 += (int) (param[2] & 0x7f) * 256 * 256;
    fLqValue01 += (int) (param[3] & 0x7f) * 256 * 256 * 256;

    System.out.println("The value of the flqvalue01 is : " + fLqValue01);
    }}输出结果:
    The value of the flqvalue01 is : 142042709
      

  2.   

    用long也是一样的,
    用&0x7f是不是把原来的值给修改了?