问题描述
用十六进制表示的数字40.0
被写成0x1.4000000000000p+5
,意思是(1 + 4/16) * 2⁵
。
p
代表什么?可能是因为选择这封信是有原因的。
解决方法
它只是意味着“力量”
选择按照惯例,字母 P (或“ em” p ,代表“幂”)代表的两倍,升为的幂,而 E (或 e )在E notation中以十进制表示的目的与此类似。 P后面的数字是十进制,代表 binary 指数。将指数乘以1乘以2,而不是16。10.0p1 = 8.0p2 = 4.0p3 = 2.0p4 = 1.0p5。通常,将数字标准化以使前导十六进制数字为1(除非值正好为0)。
https://en.wikipedia.org/wiki/Hexadecimal#Hexadecimal_exponential_notation
P
是因为E
是一个有效的十六进制数字,因此它可能出现在有效部分