位运算:全部针对二进制按位计算。
1、 与或非异或:
-
& 、| 、~ 、^
-
非
非做的是取反操作。
例如 ~5
5 的二进制:0000 0101
取反 :1111 1010
取反之后的二进制,由于第一位为1,所以表示负数。
将负数变成正数,利用取负数的逆操作,即:减一,再取反。
1111 1010 减一 为 1111 1001 ,取反为 0000 0101,十进制为 6。
因为是负数,所以 ~5 的非 为 -6。
0x:表示16进制,0o:表示8进制,0b:表示二进制。
二进制,八进制,十六进制,与十进制的转换,等于 每位上的数乘以进制数的次方数,从右侧0次方开始。
十六进制,八进制向二进制转换的快速方法:十六进制的每位的数字,用二进制的四位表示,然后将所有的表示排列在一起,就是二进制;八进制转二进制,同理用三位表示。
0x542 ==0b 0101 0100 0010
0o542 == 0b 101 100 010
2、 << >> 左移右移
左移: m << n ,m*2 的n次方
右移: m>>n , m/ 2的n次方
3、三目运算符
(a+b) if (a<b) else (a-b)
如果 (a < b) 为True,则执行 (a+b),否则执行(a-b);