Yeah, you could express it like that
Yeah, you could express it like that
It’s a C++17 feature that allows specifying a power of two (as decimal exponent) by which the fractional part should be multiplied.
From the documentation (emphasis mine):
If the floating literal begins with the character sequence
0x
or0X
, the floating literal is a hexadecimal floating literal. Otherwise, it is a decimal floating literal.For a hexadecimal floating literal, the significand is interpreted as a hexadecimal rational number, and the digit-sequence of the exponent is interpreted as the (decimal) integer power of 2 by which the significand has to be scaled.
double d = 0x1.4p3; // hex fraction 1.4 (decimal 1.25) scaled by 2^3, that is 10.0
You can find the full documentation here: cppreference.com
So in your example 0x1P1
means 116 * 2^(110) = 2
Isn’t this how it always looked when treeview is enabled? Look for the option in the View
dropdown menu.
There is decimal scientific notation for specifying a decimal exponent already (
123e4 = 123×10^4
).And I don’t know why the committee preferred base 2 over base 16, I think it really depends on the use case which one is more useful.