我有一个包含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'
答案 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