今天一个小问题郁闷半天。
long转换为byte[]
  public static byte[] longToBytes(long value) {
    byte[] result = new byte[4];
    for (int i = 3; i >= 0; i--) {
      result[i] = (byte) ( (0xFFFFFFFF & value));
      value >>= 8;
    }
    return result;
  }
这个方法有问题吗?

解决方案 »

  1.   

    看不明白:0xFFFFFFFF & value
    是什么意思,怎么回事!?
      

  2.   

    建议用另一个方法:
    先把long转为String类型,然后利用String.getBytes()就可以了.
      

  3.   

    result[i] = (byte) ( (0xFFFFFFFF & value));
    写成:
    result[i] = (byte)value;  // 自动截取最低字节result[i] = (byte) ( (0xFF & value)); // 仅仅取最低字节都是可以的.主要的是截取之后,你要 value >>= 8; 一下.