如何在python字符串中表示十六进制值?

时间:2015-04-23 20:42:15

标签: python c ctype

我在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代码,而不是十六进制文字。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:8)

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

转义

所以在你的情况下,传入你的c函数的字符串将被写为

'\x01\x11\x61\x08\x01'

python文档中有一个表here,列出了python理解的转义序列。