C语言 如何在 python 字符串中表示十六进制值



我有一些 C 代码需要如下所示的 char 缓冲区:

 char buf[ 64 ];
    buf[0] = 0x01;
    buf[1] = 0x11;
    buf[2] = 0x61;
    buf[3] = 0x08;
    buf[4] = 0x01;

我正在尝试在 Python 中创建这个缓冲区,并将指针传递给 C 代码。我按如下方式创建了 buf,

buf = create_string_buffer('0x01 0x11 0x61 0x08 0x01', 64)

但是当我将指针传递给我的 C 代码时,看起来 C 代码正在读取 01 的 ASCII 代码,而不是十六进制文字。

我该如何解决这个问题?

在 Python 中,十六进制文字由 x 转义

所以在你的例子中,传递给你的 C 函数的字符串将被写为

'x01x11x61x08x01'

python2 文档中有一个表格列出了 python 理解的转义序列(python3 的相应链接)。

最新更新