python 按位运算或
python bitwise operation OR
在python
1000 or 10001
的结果是1000
11 or 1000 or 10001
或 11
的结果
如何获得 1000 or 10001
的 10001
和 11 or 1000 or 10001
的 11001
?
Python 按预期工作。
>>> bin(0b1000 | 0b10001)
'0b11001'
>>> bin(0b11 | 0b1000 | 0b10001)
'0b11011'
但是说
>>> 1000 or 10001
1000
完全不同。它查看两个整数,因为第一个等于 True(不是 0)所以它是 returnted。如果它不是 true,则 return 整数值会在 or 运算符之后。该功能非常方便;在 python 你可以这样说
>>> myvalue =["Hello world"]
>>> myvalue and myvalue[0] or "Empty list"
'Hello world'
>>> myvalue = []
>>> myvalue and myvalue[0] or "Empty list"
'Empty list'
因为空列表在这个操作中等于 False。
在 python 中,您可以对 int 进行逻辑运算(或、与、非等)。
要将一串二进制数转换为 int 你可以这样做,
int('11', 2)
然后二进制数11
将被转换为base 2 int。因此你会得到 3
.
回到你的问题,
您需要预成型:1000 or 10001
为此,首先将这些二进制数转换为 int 并对这些数字应用逻辑或运算符。它看起来像这样,
bin(int('1000', 2) | int('10001', 2)) # '0b11001'
上面结果中的0b
表示是二进制字符串
同样适用于 11 or 1000 or 10001
,
bin(int('11', 2) | int('1000', 2) | int('10001', 2)) # 0b11011
在python
1000 or 10001
的结果是1000
11 or 1000 or 10001
或 11
如何获得 1000 or 10001
的 10001
和 11 or 1000 or 10001
的 11001
?
Python 按预期工作。
>>> bin(0b1000 | 0b10001)
'0b11001'
>>> bin(0b11 | 0b1000 | 0b10001)
'0b11011'
但是说
>>> 1000 or 10001
1000
完全不同。它查看两个整数,因为第一个等于 True(不是 0)所以它是 returnted。如果它不是 true,则 return 整数值会在 or 运算符之后。该功能非常方便;在 python 你可以这样说
>>> myvalue =["Hello world"]
>>> myvalue and myvalue[0] or "Empty list"
'Hello world'
>>> myvalue = []
>>> myvalue and myvalue[0] or "Empty list"
'Empty list'
因为空列表在这个操作中等于 False。
在 python 中,您可以对 int 进行逻辑运算(或、与、非等)。
要将一串二进制数转换为 int 你可以这样做,
int('11', 2)
然后二进制数11
将被转换为base 2 int。因此你会得到 3
.
回到你的问题,
您需要预成型:1000 or 10001
为此,首先将这些二进制数转换为 int 并对这些数字应用逻辑或运算符。它看起来像这样,
bin(int('1000', 2) | int('10001', 2)) # '0b11001'
上面结果中的0b
表示是二进制字符串
同样适用于 11 or 1000 or 10001
,
bin(int('11', 2) | int('1000', 2) | int('10001', 2)) # 0b11011