如果我有两个二进制表示的字符串。如何对它们进行按位运算?例子a = '101'b = '010'c = a | bc => '111'
2 回答
慕的地6264312
TA贡献1817条经验 获得超6个赞
首先,使用int
将二进制字符串转换为数字。您可以使用第二个参数int
来指定基数,在本例中为 2。然后,您可以使用|
“或”数字和bin
/或格式字符串(这里有许多不同的可能性)来转换回二进制。
>>> a = '101'
>>> b = '010'
>>> c = int(a, 2) | int(b, 2)
>>> bin(c)
'0b111'
>>> f"{c:b}"
'111'
>>> format(c, "b")
'111'
如有必要,后两者还可用于添加任意数量的前导零,例如在格式字符串中使用08b代替b。
凤凰求蛊
TA贡献1825条经验 获得超4个赞
一种适用于字符串(不是通过整数)并保持前导零完整的解决方案:
>>> a = '0101'
>>> b = '0011'
>>> ''.join(map(max, a, b))
'0111'
需要字符串具有相同的长度,但考虑到您的示例,其中一个字符串有一个前导零,因此它与另一个字符串一样长,我想这就是您的情况。
添加回答
举报
0/150
提交
取消