今天我玩了一点c风格的编码变量,以便于与必要的c程序进行通信。 我读了https://docs.python.org/2/library/struct.html 我知道\x启动2位十六进制表示,但对于一些数字,我得到:
from struct import *
datum=239179
buf = pack(">Q", datum)
buf
'\x00\x00\x00\x00\x00\x03\xa6K'
什么是\xa6K?\xa6是有效的形式。你知道吗
解包这个变量工作得很好,所以这似乎是一个合法的十六进制方法,但为什么呢?对于一个类似的问题,一个朋友写了一个围棋程序,给他同样的数字 00 00 03 a6 4b。如果我们检查K的十六进制值,它是4b
tldr公司; 为什么\xa6K与\xa6\x4b相同?你知道吗
感谢您的帮助:)
谢谢你的解决方案,我觉得有点傻:D
struct.pack
返回str
对象(python3中的bytes
)。字符串选择使用十六进制代码(例如'\xa6'
)表示非打印字符。但是,与'\x4b'
对应的字节是可打印字符,因此字符串使用该字符。你知道吗相关问题 更多 >
编程相关推荐