关于 double 转 byte[] 的问题
代码在下面,主要问题了某些数据会出现转换错误,比如700~10W之间的数字转换就错误,但是小数或者大数可以转换成功,求教是什么问题?public static byte[] putDouble( double x) {
byte[] b = new byte[8];
long l = Double.doubleToLongBits(x);
for (int i = 0; i < 8; i++) {
b[i] = new Long(l).byteValue();
l = l >> 8;
}
return b;
}
public static double getDouble(byte[] b) {
long m;
m = b[0];
m &= 0xff;
m |= ((long) b[1] << 8);
m &= 0xffff;
m |= ((long) b[2] << 16);
m &= 0xffffff;
m |= ((long) b[3] << 24);
m &= 0xffffffffl;
m |= ((long) b[4] << 32);
m &= 0xffffffffffl;
m |= ((long) b[5] << 40);
m &= 0xffffffffffffl;
m |= ((long) b[6] << 48);
m &= 0xffffffffffffffl;
m |= ((long) b[7] << 56);
return Double.longBitsToDouble(m);
} --------------------编程问答-------------------- 你应该借助Stream,然后从Stream再得到Byte。 --------------------编程问答--------------------
我没有stream啊 --------------------编程问答-------------------- 这有篇不错的文章。
http://www.360doc.com/content/10/1016/09/3103730_61409144.shtml --------------------编程问答--------------------
你好,我就是用里面的函数,但是某一些数据转了以后是错误的
补充:Java , Java SE