当前位置: 代码迷 >> J2SE >> java怎么读取无符号的整型
  详细解决方案

java怎么读取无符号的整型

热度:32   发布时间:2016-04-24 00:37:34.0
java如何读取无符号的整型
因为我读一个二进制文件,这个二进制文件是通过c保存的,所以里面会有一些无符号整型unsigned int
我是用DataInputStream.readUnsignedByte()来把这四个字节读到一个byte数组里,然后我该怎么把这个byte数组变成一个long呢?

------解决方案--------------------
强制类型转换,由于long是8Byte,而byte是1Byte,所以, 定义一个byte的buffer,像这样:
byte b[8];
然后给buffer内读入值, 再强转, long l = (long)b就可以了
------解决方案--------------------
直接当整型读入unsigned int的4个字节,再转成long型,如下,看看i是如何转的。
Java code
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);   }}
  相关解决方案