我正在尝试将双精度数转换为十进制。例如,双精度数字 22 和字节为:
[0] 0
[1] 0
[2] 0
[3] 0
[4] 0
[5] 0
[6] 54
[7] 64
现在我尝试再次将这些值转换为 22 :
ByteBuffer buffer = ByteBuffer.wrap(data);
long l = buffer.getLong();
long b = Double.doubleToLongBits(l);
但结果是完全错误4.6688606E18
的:这个数字是多少?请帮忙,我完全糊涂了!
根据 IEEE 标准 754 双精度:
任何存储为双精度值的值都需要 64 位,格式如下表所示:
63 符号(0 = 正,1 = 负)
62 到 52 指数,偏差 1023
51 到 0 数字 1.f 的分数 f
现在我应该如何将双精度转换为数字以再次获得 22?所有这些答案都是错误的