将双精度打印为原始十六进制



我对打印双精度作为原始十六进制很感兴趣。我不想解释尾数和指数。

Java中是否有打印函数来实现它?

如果没有,在Java中如何从double中提取原始八位字节?

使用Double.doubleToLongBits()Double.doubleToRawLongBits()

首先,使用Double.doubleToLongBits()或Double.doupleToRawLongBits

但是,如果您想打印比特,并且您有Java 8,我建议您使用新的无符号API将long转换为String,可能使用基16或2。

double number = Math.E;
long bits = Double.doubleToRawLongBits(number);
System.out.println(Long.toUnsignedString(bits, 16)); // 4005bf0a8b145769

最新更新