gpt4 book ai didi

python - 将 n 个元素(大小 = 2 字节,十进制)的列表拆分为 2n 个元素(大小 = 1 字节,十六进制)

转载 作者:行者123 更新时间:2023-12-01 09:22:44 29 4
gpt4 key购买 nike

我有一个包含 n 个十进制元素的列表,其中每个元素都是两个字节长。

可以说:

x = [9000 , 5000 , 2000 , 400]

这个想法是将每个元素拆分为 MSB 和 LSB 并将其存储在连续的列表元素中。

输出应该是:

y = [23 , 28 , 13 , 88 , 07 , D0 , 01 , 90]

现在信号数操作的基本逻辑很清楚了:

x=9000
y_msb = x//256 #Hex Quotient for FF
y_lsb = x%256 #Hex Remainder for FF

并将这两个值存储为十六进制

输出:

y_msb=23
y_lsb=28

我的问题是在大小为 n 的 Python3 列表中执行此操作的最有效方法是什么。

最佳答案

带有generator expression和一些位操作,你可以这样做:

代码:

data = sum(((d >> 8, d & 0xff) for d in in_data), ())

测试代码:

in_data = [9000 , 5000 , 2000 , 400]
out_data = (0x23, 0x28, 0x13, 0x88, 0x07, 0xD0, 0x01, 0x90)

data = sum(((d >> 8, d & 0xff) for d in in_data), ())
assert data == out_data

关于python - 将 n 个元素(大小 = 2 字节,十进制)的列表拆分为 2n 个元素(大小 = 1 字节,十六进制),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50692125/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com