2015-04-23 2 views
2

У меня есть некоторый код C, который ожидает обугленный буфера, который выглядит следующим образом:Как представить шестнадцатеричное значение в строке python?

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

Я пытаюсь создать этот буфер в Python, и передать указатель на код C. Я создал БУФЫ следующим образом,

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

, но когда я передать указатель на мой код C, это выглядит как код C читает код ASCII для 01, а не шестигранных буквального.

Как исправить это?

ответ

5

В Python шестнадцатеричных литералов спасся \x

так в вашем случае строки перейти в вашу C Функция будет записана как

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

Существует таблица here в питона документации Перечисляя escape-последовательности, которые понимает python.

 Смежные вопросы

  • Нет связанных вопросов^_^