繁体   English   中英

python \\ xhhK中的怪异十六进制表示形式

[英]weird hexadecimal representation in python \xhhK

今天,我在用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'

什么ist \\ xa6K? \\ xa6是有效格式。

解压缩此变量可以很好地工作,因此这似乎是合法的十六进制方式,但是为什么呢? 对于类似的问题,一位朋友编写了一个go程序,该程序为他提供了相同的数字00 00 00 00 00 03 a6 4b。 现在,如果我们检查K的十六进制值,则为4b。

tldr; 为什么\\ xa6K与\\ xa6 \\ x4b相同?

谢谢你的帮助 :)


感谢您的解决方案,我有点愚蠢:D

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM