python中奇怪的十六进制表示法\xhhK

2024-05-14 22:21:39 发布

您现在位置:Python中文网/ 问答频道 /正文

今天我玩了一点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


Tags: httpsorg程序docs编码风格htmllibrary
1条回答
网友
1楼 · 发布于 2024-05-14 22:21:39

struct.pack返回str对象(python3中的bytes)。字符串选择使用十六进制代码(例如'\xa6')表示非打印字符。但是,与'\x4b'对应的字节是可打印字符,因此字符串使用该字符。你知道吗

相关问题 更多 >

    热门问题