位运算基本操作总结

一:位运算基本操作知识点

1. 左移操作 a << b

将A的二进制表示的每一位向左移B位,左边超出的位截掉,右边不足的位补0
A = 1100  B = 2
A << B = 110000

每左移一位,数值乘以2。


2.右移操作 A >> B , A >>> B

右移操作分为逻辑右移,和算术右移
算术右移是带符号的右移,逻辑右移是不带符号的右移。
算术右移:将A的二进制表示的每一位向右移B位,右边超出的位截掉,左边不足的位补符号位的数。
逻辑右移:将A的二进制表示的每一位向右移B位,右边超出的位截掉,左边不足的位补0。
C语言:只有逻辑右移 A >> B
JAVA 和 Python中:算术右移 A >> B , 逻辑右移 A >>> B

A = 11111111111111111111111110000001
B = 2
A >> B = 11111111111111111111111111100000
A >>> B = 00111111111111111111111111100000

每右移一位,数值除以2


3.按位与操作 a & b

将A和B的二进制表示的每一位进行与操作,只有两个对应的二进制位都为1时,结果位才为1,否则为0.
A = 001010
B = 101100
A & B = 001000


4.按位或操作 a | b

将A和B的二进制表示的每一位进行或操作,只要两个对应的二进制位有一个为1,结果位就为1,否则为0.
A = 001010
B = 101100
A | B = 101110


5.按位非操作 ~ a

将A的二进制表示每一位进行取反操作,如果对应的二进制位为0,结果位为1,否则为0.
 A = 00000000000000000000000000001010
~A = 11111111111111111111111111110101


6.按位异或操作 a ^ b

将A和B的二进制表示的每一位进行异或操作,如果对应的二进制位不同,结果位为1,否则为0.
A = 001010
B = 101100
A ^ B = 100110

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值