貌似不准,转过来转不回去
在python中虽然很少用到十六进制或者二进制数据,但是当要处理这些数据时,
进制的转换还是必要的,这里把找到的浮点数转换为十六进制,十六进制转换为浮点数
的方法分享出来。有了十六进制数据,二进制也好,十进制,八进制也好,都很方便转换了。
1. 浮点数转为十六进制数据
>>> struct.pack("<f", 238.3).encode('hex')
'cd4c6e43'
2. 十六进制数转为浮点数
>>> import struct
>>> struct.unpack('!f', '41973333'.decode('hex'))[0]
18.899999618530273
>>> struct.unpack('!f', '41995C29'.decode('hex'))[0]
19.170000076293945
>>> struct.unpack('!f', '470FC614'.decode('hex'))[0]
36806.078125
from ctypes import *
def convert(s):
i = int(s, 16) # convert from hex to a Python int
cp = pointer(c_int(i)) # make this into a c integer
fp = cast(cp, POINTER(c_float)) # cast the int pointer to a float pointer
return fp.contents.value # dereference the pointer, get the float
print convert("41973333") # returns 1.88999996185302734375E1
print convert("41995C29") # returns 1.91700000762939453125E1
print convert("470FC614") # returns 3.6806078125E4
单精度浮点数是一种二进制浮点数类型,在计算机中用于表示小数。它使用32位提供了大约7到8位的有效精度。Python中的单精度浮点数采用IEEE标准的二进制浮点数格式,即“IEEE 754单精度浮点数”。本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。🧡AI职场汇报智能办公文案写作效率提升教程 🧡专注于。
我们使用binascii.unhexlify()方法将hex_str转换为字节串形式。然后,我们使用struct.unpack()方法将字节串解包为单个float型十进制数值。f’,它表示我们希望解包为一个大端(!具体来说,需要使用struct.unpack()方法将十六进制字节串解包为float型数值.在这个示例代码中,我们定义了一个十六进制字节串hex_str,其值为b’40e5c28f’。最后,我们使用print(dec_num)打印结果,显示将十六进制字节串转换为float型十进制数得到的结果。
intItem = int(a,16);
binnaryStr = bin(intItem)[2:len(bin(intItem))];
binnaryStr = "%(binnary)08d"%{'binnary':int(binnaryStr)}
ret = ret+binnaryStr
s = 'F4CEF042'
#&amp;lt;是小端,&amp;gt;是大端,f代表16进制
print(struct.unpack('&amp;lt;f', bytes.fromhex(s))[0])
#输出:120.40420532226562
浮点数的十六进制值要获取浮点数的十六进制值,我们使用– float.hex()方法,它接受浮点值并以字符串格式返回其十六进制值。语法:float.hex(number)Parameter(s): number-要转换为十六进制的浮点值。返回值: str –以字符串格式返回数字的十六进制值。示例Input:num=10.23print("hexvalueof",num,"is="...
最近在处理一个存档文件,用的两个字节来保存浮点数,不能理解,最后找到了这么一种数据类型:半精度浮点数Python原生不支持这样的东西,需要外挂numpy,方可将双字节HEX转为半精度浮点如果是字符串类型的“3c00”这样的东西,可以用unhexlify,转换成binary类型,然后丢到frombuffer里面用from binascii import unhexlifyimport numpy a...