2017-05-25 46 views
0

我有獨立2個字節十六進制在1個可變成2

2bytes=0x1AFF 

和我要拆分的變量「2字節」保存在0x1A的一個獨立變量,和0xFF的另一個獨立變量。在一個變量中保存第一個字節,在另一個變量中保存第二個字節:

Byte1=0x1A 
Byte=0xFF 

我該怎麼做?感謝

+2

使用位移和掩蔽操作符。閱讀https://wiki.python.org/moin/BitwiseOperators – Barmar

+0

如果我這樣做,我會得到分離,但我仍然有2個字節的16位,我的意思是Byte1 = 0x001A和Byte將是0x00FF,我想要什麼這兩個是8位。 – Dave

+1

Python沒有不同的數字大小。一個8位數字只是一個高位全爲0的數字。 – Barmar

回答

3

我會使用按位和&和比特移位>>運算符:

value = 0x1AFF 
values = [] 
while value != 0: 
    values.append(value & 0xFF) 
    value = value >> 8 

print(values) 
# [255, 26] 
# == 
# [0xFF, 0x1A] 

這應該產生的value字節(以相反的順序),其在變量values列表。

+0

是的!這就是我用過的。感謝您的回答! – Dave