因为我读一个二进制文件,这个二进制文件是通过c保存的,所以里面会有一些无符号整型unsigned int
我是用DataInputStream.readUnsignedByte()来把这四个字节读到一个byte数组里,然后我该怎么把这个byte数组变成一个long呢?

解决方案 »

  1.   

    强制类型转换,由于long是8Byte,而byte是1Byte,所以, 定义一个byte的buffer,像这样:
    byte b[8];
    然后给buffer内读入值, 再强转, long l = (long)b就可以了
      

  2.   

    直接当整型读入unsigned int的4个字节,再转成long型,如下,看看i是如何转的。
    public class Welcome
    {
       public static void main(String[] args)
       {
         int i=0xffffffff;
         long l=0;
         if(i<0){
            i &= ~0x80000000;
            l = 0x80000000l;
         }
         l |= i;
        
         System.out.printf("%016x",l);
       }
    }