python十六进制转换成IEEE754

import struct
import ctypes
def float_to_hex(f):
return hex(struct.unpack(’<I’, struct.pack(’<f’, f))[0])
def float2hex(s):
fp = ctypes.pointer(ctypes.c_float(s))
cp = ctypes.cast(fp,ctypes.POINTER(ctypes.c_long))
return hex(cp.contents.value)

def hex_to_float(h):
i = int(h,16)
return struct.unpack(’<f’,struct.pack(’<I’, i))[0]
def hex2float(h):
i = int(h,16)
cp = ctypes.pointer(ctypes.c_int(i))
fp = ctypes.cast(cp,ctypes.POINTER(ctypes.c_float))
return fp.contents.value
if name == ‘main’:
f = [1.5,-1.5,3.5,-3.5]
h = []
for i in f:
print(float_to_hex(i)," | “,float2hex(i))
h.append(float_to_hex(i))
print(h)
for i in h :
print(hex_to_float(i),” | ",hex2float(i))

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值