2016-09-06 37 views
0

我有一個整數 - 例如說簡單,但需要的位操作Python的十六進制和INT

a = 12345 
b = hex(a) 

我必須以特定格式發送該到MCU。首先,我必須將其轉換爲十六進制。我做了,它給了我--- 0x3039;

我需要一個數組是這樣的 - [0x39,的0x30]

目前我的整數轉換成字符串,然後到一個列表,然後做列表操作的一些元素。

我希望有更容易的事情。哪一個可以在一行或兩行中完成?即使使用以下數字,它也應該可以工作 - 1234,123,12,1,意味着它應該從單個數字到五個數字。

回答

2

如果您需要十六進制字符串與數列表爲小尾數字節:

a=12345 
l = [hex(a&0xff),hex(a>>8)] # little endian format, as hex string 
print(l) 

給出:

['0x39', '0x30'] 

注意引號,則無法打印[0x39, 0x30]。如果你想整數值,只是做

l = [a&0xff,a>>8] # little endian, format as bytes 

這給:

[57, 48] 

和BTW:

[0x39, 0x30]==[57, 48] => True 

它只是代表/整數列表中的打印是十進制:)

+0

好的,謝謝你讓 –