2015-04-23 36 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如下,

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

,但是當我通過指針我的C代碼,它看起來像C代碼正在讀取ASCII碼爲01,而不是一個十六進制文字。

我該如何解決這個問題?

回答

5

在Python六角文字是由\x

所以在你的情況下,字符串逃過傳遞到你的C函數將被寫成

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

有一個表here在Python文檔上市python可以理解的轉義序列。

相關問題