在面试题64. 求1+2+…+n遇到了利用逻辑运算符(&&)的短路作用。由于答案多数是java或者c。python 中位运算符和逻辑运算符 平时用的不多。所以总结一下,以便更清晰的区分。
python中的位运算符 与 c/c++ 中的位运算符
Python位运算符 | 含义 | C/C++ | 区别 |
& | 按位与 | & | 无· |
| | 按位或 | | | 无 |
^ | 按位异或 | ^ | 无 |
~ | 按位非(有符号二进制数的补码形式) | ~ | 无 |
<< | 左移动运算符(*2的n次方) | << | 无 |
>> | 右移动运算符(/2的n次方) | >> | 无 |
在位运算符上两者都是相同的,不管输入的二进制(0b)、十进制、八进制(0o)还是十六进制(0x),首先应该转成二进制,然后在按照位运算进行运算,最后结果会返回二进制对应的十进制数。
python中的逻辑运算符 与 c/c++ 中的逻辑运算符
python | c/c++ | 含义 |
and | && | 布尔‘与’ |
or | || | 布尔‘或’ |
not | ! | 布尔‘非’ |
在 c/c++