关于java长整型溢出的问题
通过读二进制文件,将诸如“A0 0E 98 32”的四个16进制数拼接成一个整数,目的是它对应的10进制值除以1557710.5,得出最终的数值。
程序如下:
byte[] b = new byte[4];
c = fis.read(b);//读取二进制文件的四个16进制数值,比如“A0 0E 98 32”
long k = 0;
for (int i=0; i<b.length; i++) {
k = (k<<4) | b[i]; //将“A0 0E 98 32”拼接为一个16进制数:A00E9832
}
double r=k/1557710.5; //这里出现r<0,说明k溢出了。
结果长整型k溢出了,r是负数,在c语言中有unsigned long int或__int64,但java没有这种类型,请问怎样解决溢出的问题?
谢谢!