python如何将浮点数转换为16进制的数

最佳答案

这在python中有点棘手,因为不希望将浮点值转换为(十六进制)整数.相反,您尝试将浮点值的IEEE 754二进制表示解释为十六进制.

 

我们将使用内置struct库中的pack和unpack函数.

浮点数是32位.我们首先将它打包成binary1字符串,然后将其解压缩为int.

 

def float_to_hex(f):
    return hex(struct.unpack('<I', struct.pack('<f', f))[0])

float_to_hex(17.5)    # Output: '0x418c0000'

我们可以做同样的双倍,知道它是64位:

 

def double_to_hex(f):
    return hex(struct.unpack('<Q', struct.pack('<d', f))[0])

double_to_hex(17.5)   # Output: '0x4031800000000000L'

1 – 表示一串原始字节;不是一串零和一零.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值