日期:2014-05-20  浏览次数:21007 次

读取流文件时,读出的8字节double类型,数据不对
读取一个流文件,有个循环里面要读取8字节。
c代码为:
bt   =   br.ReadBytes(8);
Double   du   =   System.BitConverter.ToDouble(bt,0);
asp代码为:
objstr=   ssobj.bytestodoublestr(srmObj.Read(8))   //自己写的函数
用java读
用double   value=ins.readDouble();方法时,显示的数值不对。
用ins.read(buffer2,begin,8);读出后用高低位转换,结果还是不对

到底是怎么回事呢?我java   的基础也有点太差了。请大家帮忙给个思路,或给段代码,谢谢!!

------解决方案--------------------
byte转int或者double不是这么转的
你先用InputStream读8字节数据到一个byte[]里

给你个函数,byte转int的,转double自己修改下吧
int byteToInt(byte[] b,int offset,int length) {
int s = 0;
for(int i = offset; i < offset + length - 1; i ++){
if(b[i] > =0)
s = s + b[i];
else
s = s + 256 + b[i];

s = s * 256;
}

if(b[offset + length - 1] > =0)
s = s + b[offset + length - 1];
else
s = s + 256 + b[offset + length - 1];

return s;
}
------解决方案--------------------
信息太少了
------解决方案--------------------
关键是你所读取的流文件是怎么来的啊???

------解决方案--------------------
ding