python按位右移的作用_python中的按位与 +按位或+ 按位反+异或运算 +左移+右移

1. 按位与

按位与是针对二进制数的操作,指将两个二进制数的每一位都进行比较,如果两个相应的二进位都为 1 则此位为 1,否则为 0。在本例中, 5 的二进制表达为 101 , 3 的二进制表达为 11 (为补全位数进行按位操作写作 011 ),则按位与操作后的结果为001 ,对应的十进制数为 1 。

详细: 3 & 5 —— 00000011 & 00000101 = 0000 0001 即为 1

2. 按位或

按位或是针对二进制数的操作,指将两个二进制数的每一位都进行比较,如果两个相应的二进位有一个为 1 则此位为 1,否则为 0。在本例中, 101 与 011 进行按位或操作后的结果为 111 ,对应十进制数为 7 。

详细:3 | 5 —— 00000011 | 0000 0101 = 0000 0111 即为7

3. 按位异或

按位异或是针对二进制数的操作,指将两个二进制数的每一位都进行比较,如果两个相应的二进位不同则此位为 1,相同为 0。在本例中, 101 与 011 进行按位异或操作的结果为 110 ,对应十进制数为 6 。

详细例子:

a = 10

b = 100

a = a^b # a = 110

b = b^a # b = 10

a = a^b # a = 100

解释:(此处的例子证明a b 经过三次异或操作之后,可以实现两者的数值的交换)

a的二进制  1010   b的二进制  1100100

a    : 0 0 0 1 0 1 0

b    : 1 1 0 0 1 0 0

a^b: 1 1 0 1 1 1 0  ----> 110  (异或:相等为0,不等为1)

b    : 1 1 0 0 1 0 0

b^a: 0 0 0 1 0 1 0  ---->10

a    :  1 1 0 1 1 1 0

a^b: 1 1 0 0 1 0 0  ---->100

4. 按位取反

按位取反也称作“按位取非”或“求非”或“取反”,沈洁元译本译作“按位翻转”,是针对二进制数的操作,指将两个二进制数的每一二进位都进行取反操作, 0 换成 1 , 1 换成0 。只需按照给出的公式记忆 ~6 = -(x+1)=-7

详细:~6 = -(x+1)=-7

5. 左移

左移(<

eg:print(2<<2) 返回8=1000

6. 右移

右移(>>)(由<

eg:print(13>>2) 返回3=011

原文:https://www.cnblogs.com/Leon27-29/p/12072522.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值