gpt4 book ai didi

python - 如何使用python从int中获取每个Xbit

转载 作者:行者123 更新时间:2023-12-01 04:56:45 26 4
gpt4 key购买 nike

我想从 int 中获取每个 x 位并将这些 x 位映射到一个列表,因此之后我们有一个包含 32/x 个元素的列表。

例如数字0xFEBA1234,每4bits提取一次,结果为[15, 14, 11, 10, 1, 2, 3, 4]。

一般我们可以这样写函数

def get_xbits_list(num, x):
result = []
mask = 2**x - 1

for i in xrange(32/x):
result.append((num >> (i * x)) & mask)

result.reverse()
return result

问题是:

是否有任何简单的方法可以用 map 或其他 map 函数在一两行中重写此函数。

最佳答案

是的,有一个更短的方法(使用列表理解):

def get_xbits_list(num, x):
mask = 2**x - 1
return [(num >> (i * x)) & mask for i in reversed(xrange(32/x))]

如果您确实想使用 map :

def get_xbits_list(num, x):
mask = 2**x - 1
return map(lambda i: (num >> (i * x)) & mask, reversed(xrange(32/x)))

关于python - 如何使用python从int中获取每个Xbit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27200881/

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