gpt4 book ai didi

python - 使用python作为一个 block 二进制文件旋转数组

转载 作者:太空宇宙 更新时间:2023-11-03 14:38:39 24 4
gpt4 key购买 nike

我有一个像 [4, 255, 16] 这样的数组,dtype = int8。我想将它向左旋转,但就像二进制旋转一样。

我希望我的数组如下所述:

000001001111111100010000

左移2位后为:

000100111111110001000000

十进制如 [17, 252, 64]

最佳答案

如果你想很好地旋转它,你可以使用 collections 中的 deque

>>> from array import array
>>> from collections import deque
>>> x = array('l', [4, 255, 16])
>>> x
array('l', [4, 255, 16])
>>> z = ''.join([format(y, 'b').zfill(8) for y in x.tolist()])
>>> z
'000001001111111100010000'
>>> d = deque(z)
>>> d.rotate(-2)
>>> ''.join(d)
'000100111111110001000000'
>>> k = ''.join(d)
>>> [int(k[i:i+8],2) for i in range(0, len(k), 8)]
[19, 252, 64]

关于python - 使用python作为一个 block 二进制文件旋转数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55338189/

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