位运算基本操作知识小结

1.左移操作

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

A = 1100

B = 2

A << B = 110000

2.右移操作

A>> B , 右移操作分为算数右移和逻辑右移

算术右移是带符号的右移,逻辑右移是不带符号的右移。

算术右移:将A的二进制表示的每一位向右移B位,右边超出的位截掉,左边不足的位补符号位的数。

逻辑右移:将A的二进制表示的每一位向右移B位,右边超出的位截掉,左边不足的位补0。

C语言中只有逻辑右移 A >> B

A = 11111111111111111111111110000001

B = 2

A >> B =00111111111111111111111111100000

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


位运算基本操作知识小结
http://atime.cc/2018/02/11/位运算基本操作知识小结/
作者
ATIME
发布于
2018年2月11日
许可协议