比方说a=0xF0b=[a list of bits].如何迭代a的每一位,以便可以在该位和列表b中的位之间执行逐位运算?

在循环之前,我曾try 使用bin()方法将a转换为其二进制形式,但是,我不能再执行逐位操作,因为现在a的每一位都是字符串数据类型.

如有任何帮助,我们不胜感激!

推荐答案

可以使用BitShift:

a = 0xF0
b = [1, 0, 1, 0, 1, 0, 1, 0]

print(bin(a))
# 0b11110000
for idx, bit_in_b in enumerate(b):
    bit_in_a = (a >> idx) & 1
    binary_and_operation = bit_in_a & bit_in_b
    print(bit_in_a, binary_and_operation)

# 0 0
# 0 0
# 0 0
# 0 0
# 1 1
# 1 0
# 1 1
# 1 0

小心到两点:

  • a将从右到左迭代,b将从左到右迭代,但您可以根据需要进行更改.
  • 如果len(b)!=a中的位数,则行为可能不是您想要的.

Python相关问答推荐

如何修复fpdf中的线路出血

除了Python之外,可以替代bare?

仅对matplotlib的条标签中的一个条标签应用不同的格式

Numpy索引argsorted使用integer数组,同时保留排序顺序

如何让pyparparsing匹配1天或2天,但1天和2天失败?

给定数据点,制定它们的关系

如何将Matplotlib的fig.add_axes本地坐标与我的坐标关联起来?

仅从风格中获取 colored颜色 循环

使用mySQL的SQlalchemy过滤重叠时间段

试图找到Python方法来部分填充numpy数组

Django mysql图标不适用于小 case

标题:如何在Python中使用嵌套饼图可视化分层数据?

两个pandas的平均值按元素的结果串接元素.为什么?

将9个3x3矩阵按特定顺序排列成9x9矩阵

导入...从...混乱

不允许访问非IPM文件夹

无法连接到Keycloat服务器

Django admin Csrf令牌未设置

旋转多边形而不改变内部空间关系

在Python中计算连续天数