第1个回答 推荐于2016-11-16
public class Marik
{
public static double getDouble(byte[] b)
{
long l;
l = b[0];
l &= 0xff;
l |= ((long) b[1] << 8);
l &= 0xffff;
l |= ((long) b[2] << 16);
l &= 0xffffff;
l |= ((long) b[3] << 24);
l &= 0xffffffffl;
l |= ((long) b[4] << 32);
l &= 0xffffffffffl;
l |= ((long) b[5] << 40);
l &= 0xffffffffffffl;
l |= ((long) b[6] << 48);
l &= 0xffffffffffffffl;
l |= ((long) b[7] << 56);
return Double.longBitsToDouble(l);
}
public static void main(String[] args)
{
byte[] bs = { 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 };
int start = 0;
for(int i = 0; i < bs.length / 8; i++)
{
byte[] dest = new byte[8];
System.arraycopy(bs, start, dest, 0, dest.length);
start += dest.length;
System.out.println(getDouble(dest));
}
}
}本回答被提问者采纳