This topic created in 2546 days ago, the information mentioned may be changed or developed.
我将收到的 64 位二进制字符串先八位颠倒重排,因为是小端存储。按照 求值方法:(-1)^S*(1.M)*2^(E-1023) 解出最后的值,但是和用网上一些线上转换工具出来的就差一些,数量级是一致的,附代码如下(我是 python 新手,代码很不美观)谢谢大佬们帮忙看看。
dat_sort = dat[56:64]+dat[48:56]+dat[40:48]+dat[32:40]+dat[24:32]+dat[16:24]+dat[8:16]+dat[0:8]
factor = len('%d'% int(dat_sort[12:64],2))
factor = pow(10,factor)
M = int(dat_sort[12:64],2)/factor
S = pow(-1,int(dat_sort[0],2))
E = int(dat_sort[1:12],2)
num = S*(1+M)*pow(2,E-1023)
1 replies • 2019-05-08 16:00:56 +08:00
 |
|
1
sunocean May 8, 2019 via iPhone
double 这个类型本来就是不精准存储的。 python 里 double 类型有效位是 7 位。只要前七位一致。那么就是正常的
|