在查看Double类源码时发现它的最大值等一些常量使用了十六进制的书写形式,且有一个字母P
P
表示2的指数,即P
后面是几,就表示2的几次方。
// 0x表示十六进制、1.0表示乘数、P后面的-1表示 2^-1,所以结果为:1.0 * 2^-1 = 1.0 * 0.5 = 0.5
double d1 = 0x1.0P-1; // 0.5
//同理,结果为:2 * 2^2 = 2 * 4 = 8
double d2 = 0x2P2; //8.0
在查看Double类源码时发现它的最大值等一些常量使用了十六进制的书写形式,且有一个字母P
P
表示2的指数,即P
后面是几,就表示2的几次方。
// 0x表示十六进制、1.0表示乘数、P后面的-1表示 2^-1,所以结果为:1.0 * 2^-1 = 1.0 * 0.5 = 0.5
double d1 = 0x1.0P-1; // 0.5
//同理,结果为:2 * 2^2 = 2 * 4 = 8
double d2 = 0x2P2; //8.0