|
计算机保存数据都是二进制的形式,分有效数字部分和指数部分如0.5 查看其16进制格式print((0.5).hex()) #'0x1.0000000000000p-1' 其中 0x1.0000000000000是有效数字部分,-1是指数部分,1*2^-1 = 0.5
如print((8.25).hex()) # 0x1.0800000000000p+3 其中1.08是有效数字部分, +3是指数部分,注意这里的1.08是16进制的,其10进制的值是1 + 8 * 16^-2 = 1.03125, 指数部分是3所以1.03125 * 2^3 = 8.25
因此:
print((0.1).hex()) # '0x1.999999999999ap-4' 同上不解释,最后一位a是十进制的10
print((0.2).hex()) # '0x1.999999999999ap-3'
print((0.1 + 0.2).hex()) # 0x1.3333333333334p-2 二进制加法
print((0.3).hex()) # 0x1.3333333333333p-2 可以看出0.1 + 0.2!= 0.3
|
|