我有一个用
表示的字符串011
我想将索引0的位翻转为1,这将给我:
111
因为python不允许我在最初计划的地方使用整数表示位:
mybit = 011
这给了我一些错误的提示。所以我发现的唯一方法是使用字符串来表示它:
mybit = "011"
但是由于字符串是不可变的,因此我无法找到将索引0的0翻转为1的任何方法。从头开始创建新的字符串似乎不可行,因为它看起来并不像在翻转它。希望对此有所帮助
答案 0 :(得分:3)
您在正确的轨道上。将其表示为整数。
mybit = 0b011
使用^
(按位异或)运算符翻转位。第二个操作数中为1的位将被翻转。
mybit ^= 0b100
使用|
(按位或)设置位(即使已设置)。在第二个操作数中为1的位将被设置。
mybit |= 0b100
使用&
(按位和)清除位(即使已清除)。第二个操作数中为0的位将被清除。
mybit &= 0b011
以二进制格式打印。
print(bin(mybit))