我读到,当在C中实现xoshiro++以在单位间隔中生成均匀双精度时,应该使用公式(x >> 11) * 0x1.0p-53
将64位无符号整元x转换为64位双精度.如果(出于反常原因)我想在Python中实现它,相应的表达是什么?
我读到,当在C中实现xoshiro++以在单位间隔中生成均匀双精度时,应该使用公式(x >> 11) * 0x1.0p-53
将64位无符号整元x转换为64位双精度.如果(出于反常原因)我想在Python中实现它,相应的表达是什么?
(x >> 11) * float.fromhex('0x1p-53')
fromhex
是解释this Python documentation中十六进制浮点字面量的一种方式.
您也可以使用(x >> 11) * 0.00000000000000011102230246251565404236316680908203125
.然而,我不知道Python实现是否一定会毫无错误地转换该文本.Python没有正式的规范,而且文档中关于浮点的描述也很薄弱.