学习笔记 | Python 位运算符 &、|、^、~、<<、>>(图解)

看完这篇文章,你会学到:

  • 位运算的用法
    • 按位与 &
    • 按位或 |
    • 按位异或 ^
    • 按位取反 ~
    • 按位左移 <<
    • 按位右移 >>
  • 转换进制的方法

什么是位运算?

程序中的数在计算机内存中都是以二进制的形式存在的,位运算就是直接对整数在内存中对应的二进制位进行操作。

位运算

基本的位运算有六种:

运算符 描述
& 按位与
| 按位或
^ 按位异或
~ 按位取反
<< 按位左移
>> 按位右移

1、按位与 &

参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0。

bin() 函数可以将数字转化为 2 进制。

>>> a = 3	# bin(3):  11
>>> b = 5	# bin(8): 101
>>> a & b
1			# bin(1): 001

运算过程如下图:
学习笔记 | Python 位运算符 &、|、^、~、<<、>>(图解)_第1张图片

2、按位或 |

只要对应的二个二进位有一个为1时,结果位就为1,否则为0。

>>> a = 3	# bin(3):  11
>>> b = 5	# bin(5): 101
>>> a | b
7			# bin(7): 111

3、按位异或 ^

当两对应的二进位相异时,结果为1,否则为0。

>>> a = 3	# bin(3):  11
>>> b = 5	# bin(5): 101
>>> a ^ b
6			# bin(6): 110

4、按位取反 ~

对数据的每个二进制位取反,即把1变为0,把0变为1。

>>> a = 3	# bin(3): 11
>>> ~ 3
-4			# bin(-4): 100

计算方法:~ a = - a - 1

5、按位左移 <<

运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,低位补0。

规律:

a < < b = a ∗ ( 2 ) b a << b = a * (2) ^ b a<<b=a(2)b

>>> a = 3	# bin(3): 11
>>> a << 2
12			# bin(12): 1100
>>> a * (2 ** 2)
12

6、按位右移 >>

把">>“左边的运算数的各二进位全部右移若干位,”>>"右边的数指定移动的位数,低位丢弃。

规律:

a < < b = a / / ( 2 ) b a << b = a // (2) ^ b a<<b=a//(2)b

>>> a = 10	# bin(10): 1010
>>> a >> 2
2			# bin(2):    10
>>> a // (2 ** 2)
2

附:进制转换方法

int(number: str, base=10)
# 将字符串形式的 x 从 base 进制转到 10 进制
# 示例: int('1010', base=2) -> 10

bin(number)	# 转为二进制

oct(number)	# 转为八进制

hex(number)	# 转为十六进制

最后,如果你觉得这篇文章很赞的话,点个赞再走吧!


推荐阅读

  • 学不好 Python?那是因为你没有一本好的教程!程序员必备网站,速拿走!
  • Python 爬取奥运奖牌榜 - 中国原来这么厉害!
  • 学习笔记 | 类的魔法方法(最全总结)
  • 学习笔记 | Python 模块与包详解
  • 再不会 Python 自动化,你就落伍了!xlrd、xlwt、xlutils 操作表格详解

yeanky
2021/8/1

你可能感兴趣的:(Python,#,学习笔记,python,位运算,运算符,二进制)