Abu*_*oeb 11
按位= 逐位检查
例子
Bitwise AND: 1011 & 0101 = 0001
Bitwise OR: 1011 | 0101 = 1111
Run Code Online (Sandbox Code Playgroud)
逻辑= 逻辑检查,或者换句话说,你可以说True/False检查
例子
Logical AND: 1011 && 0101 = 1 (True) # both are non-zero so the result is True
Logical AND: 1011 && 0000 = 0 (False) # one number is zero so the result is False
Logical OR: 1011 || 0000 = 1 (True) # one number is non-zero so the result is non-zero which is True
Logical OR: 0000 || 0000 = 0 (False) # both numbers are zero so the result is zero which is False
Run Code Online (Sandbox Code Playgroud)
逻辑运算符用于布尔值,因为true等于 1 和false等于 0。如果您使用 1 和 0 以外的(二进制)数,则任何不为零的数都变为 1。
例如:int x = 5;(101 in binary) int y = 0;(0 in binary) 在这种情况下,printingx && y会打印0,因为 101 被更改为 1,并且 0 保持为零:这与printing 相同true && false,它返回false(0)。
另一方面,按位运算符对两个操作数的每一位执行操作(因此称为“按位”)。
例如:int x = 5; int y = 8;打印x | y(按位或)将计算出:
000101 (5) | 1000(8)
-----------
= 1101(13) 这
意味着它会打印13。
逻辑运算符对逻辑值进行操作,而按位运算符对整数位进行操作.停止考虑性能,并将它们用于它们的意图.
if x and y: # logical operation
...
z = z & 0xFF # bitwise operation
Run Code Online (Sandbox Code Playgroud)