如果我有兩個二進制表示的字符串。如何對它們進行按位運算?例子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
提交
取消