Java浮点数表示为十六进制数

ser*_*ous 9 java floating-point hex

为什么0x1p3相等8.0?为什么0x1e3相等483,而0x1e3d平等7741?这是1e3d平等的混乱1000.0.

Jes*_*per 7

0x1e3并且0x1e3d是十六进制整数文字.请注意,在这种情况下e,d它们是十六进制数字,而不是指数指示符或double类型指示符.

1e3d是一个十进制浮点字面值.这e是指数指标,d表示这是一个double而不是一个float.

表示法0x1p3是一种以十六进制表示浮点文字的方法,您可以在Java语言规范的3.10.2节中阅读.它意味着1倍2的功率3; 指数是二进制的(因此,它是2-to-the-power而不是10-power-power).