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);
}
}