通过任何适当的方式,如何从列表中获取两个字节的元元素,并对其进行合并,然后将其转换为整数

时间:2019-06-07 14:58:43

标签: python-3.x

我有一个包含4个元素的列表,其中包含整数     数据= [134,2,4,170]     hexdata = [0x86、0x2、0x4、0xAA]

我需要从最后两个元素获取十六进制数据,例如。 (0x04和0xAA) 将它们连接到此视图0x04AA并转换为int 最后,我需要获取值= 1194的整数。 我陷入了这项任务/

data = [134, 2, 4, 170]
for x in data:
    print("0x%x" % (x), end=" ")
print()
c = "0x%x%x" % (data[2], data[3])
print(c)
print(int(c))

Traceback (most recent call last):
  File "123.py", line 7, in <module>
    print(int(c))
ValueError: invalid literal for int() with base 10: '0x4aa'

3 个答案:

答案 0 :(得分:2)

您无需在此担心字符串格式-改用notebook,例如:

data = [134, 2, 4, 170]
res = int.from_bytes(data[-2:], 'big')
# 1194

答案 1 :(得分:1)

data = [134, 2, 4, 170]
result = data[-2] << 8 | data[-1]

答案 2 :(得分:0)

将4相应地相乘并相加?不需要在上面加十六进制...

data = [134, 2, 4, 170]

rv = data[2]*256 + data[3]  # 0x04AA == 0x04*256 + 0xAA

print(rv) 

输出:

1194