现在要聊的是:Python位运算符,地址:https://www.runoob.com/python3/python3-basic-operators.html#ysf5
& | ^ ~ 都不用管,从来都用不到
左移和右移也很少用,但解释一下,以左移为例:
左移运算符:<<,理解这个运算符要知道数字的二进制存储方式,比如数字 5, 以二进制方式表示为 101 (为什么呢?以下这个例子展示为什么5等于101):
| 十进制数字 | 二进制表示 |
|---|---|
| 0 | 0 |
| 1 | 1 |
| 2 | 10 |
| 3 | 11 |
| 4 | 100 |
| 5 | 101 |
左移,就是把二进制的所有数字往左移动一位,最右边补0,所以二进制101左移一位就是1010,101等于5,1010等于10,所以5左移一位是10.
右移动同理,就是往右边移
左移和右移很少用,用的效果“大概”是:左移一位,这个数乘以二,右移一位,这个数除以二。
把5左移两位,用这个运算符写出来就是 5<<2
把8右移三位,就是8>>3
逻辑运算符要会用: and or not,注意运算顺序的问题,比如:
- not a and b 和 not (a and b) 是不一样的
- a and b or c 和 a and (b or c) 是不一样的
这里很容易出错