【发布时间】:2022-01-18 03:08:46
【问题描述】:
我一定是错过了什么......
np.float32(0xc32).tobytes() # --> `b'\x00 CE'`
struct.pack('<f', 0xc32) # --> `b'\x00 CE'`
但以下内容不会转换回来...
np.float32(0xc32).tobytes().hex() # --> '00204345'
struct.pack('<f', 0xc32).hex() # --> '00204345'
有人知道这里的错误吗?
【问题讨论】:
-
您期待的是什么?转换回到什么?
-
错误是使用
hex(),它做了一些与你想要的不同的事情。 -
@juanpa.arrivillaga 希望从十六进制字符串
0xc32转换回0xc32 -
您是否尝试过使用
struct.unpack作为struct.pack的倒数? -
0xc32不是“十六进制字符串”。它是一个int文字,其计算结果是一个常规的int对象,事实上,这是使用十六进制符号在源代码中编写的,这并不是int对象真正知道的。
标签: python python-3.x hex byte