二进制字符串的按位运算 python

Bitwise operation on Binary string python

如果我有两个字符串的二进制表示。如何对它们进行按位操作?

示例

a = '101'
b = '010'
c = a | b
c => '111'

首先,使用int将二进制字符串转换为数字。您可以使用 second parameter of int to specify the base, 2 in this case. Then, you can use | to "or" the numbers and bin 或 format-string(这里有许多不同的可能性)转换回二进制。

>>> a = '101'
>>> b = '010'
>>> c = int(a, 2) | int(b, 2)
>>> bin(c)
'0b111'
>>> f"{c:b}"
'111'
>>> format(c, "b")
'111'

后两者也可用于添加任意数量的前导零,如有必要,例如在格式字符串中使用 08b 而不是 b

适用于字符串(不是通过整数)并保持前导零完整的解决方案:

>>> a = '0101'
>>> b = '0011'
>>> ''.join(map(max, a, b))
'0111'

需要字符串具有相同的长度,但考虑到您的示例,其中一个字符串有一个前导零,因此它与另一个字符串一样长,我想您就是这种情况。