1、位运算符
a=10
b=20
print(a & b)
print(a|b)
print(a^b)
print(~1)
print(~30)
0
30
30
-2
-31
这个问题涉及到计算机内部的编码。
对于整数,计算机内部用最高位表示符号位,0表示为正,1表示为负。
对于负数,为了便于计算,计算机用补码来表示其值。
已经一个数的补码,要知道其值分两种情况:
1:符号位是0,正数,所以后面的二进制位则表示大小,即正数的原码=其补码。如1表示出来则为00000001(我这里用八位来表示,也可以用16位或32位)
2:符号位是1,负数,这时候需要把后面的数取反再加一(要问为什么?查一下资料吧,可以根据补码的特性推出来),所以11111110表示的数是1111110取反为0000001,再加一,则为0000002。算上符号位,就是-2。
1的二进制表示为:00000001,则~1为11111110,根据补码的转换方法,我们就可以算出11111110表示的数是-2.
同理:~0 = -1
2、身份运算符
a = 10
b = 20
c = 10
print(a is b)
print(a is c)
print(a is not b)
False
True
True
3、算术运算
4、比较运算
5、赋值运算符
6、逻辑运算
7、成员运算
8、运算符的优先级