将位从0翻转到1

时间:2018-10-20 00:56:11

标签: python

我有一个用

表示的字符串
011

我想将索引0的位翻转为1,这将给我:

111

因为python不允许我在最初计划的地方使用整数表示位:

mybit = 011

这给了我一些错误的提示。所以我发现的唯一方法是使用字符串来表示它:

mybit = "011"

但是由于字符串是不可变的,因此我无法找到将索引0的0翻转为1的任何方法。从头开始创建新的字符串似乎不可行,因为它看起来并不像在翻转它。希望对此有所帮助

1 个答案:

答案 0 :(得分:3)

您在正确的轨道上。将其表示为整数。

mybit = 0b011

使用^(按位异或)运算符翻转位。第二个操作数中为1的位将被翻转。

mybit ^= 0b100

使用|(按位或)设置位(即使已设置)。在第二个操作数中为1的位将被设置。

mybit |= 0b100

使用&(按位和)清除位(即使已清除)。第二个操作数中为0的位将被清除。

mybit &= 0b011

以二进制格式打印。

print(bin(mybit))
相关问题