位运算符

右移运算符: >> 

数的二进制各位向右移动1位,空出来的位置用0补充,超过边界的位置被删除,相当于一个数除以2。

左移运算符: <<

数的二进制各位向左移动1位,空出来的位置用0补充,超过边界的位置被删除,相当于一个数乘2.

在一些系统上,使用左移右移运算符实现乘除二会比用乘除运算符运行更快,但是随着编译器代码优化越来越来,这种差异在缩小。

逻辑按位运算符:

按位或运算符OR(|):对两个整数值进行操作,生成一个新整数值,如果被操作的两个值的对应位至少有一个1,则新值对应位为1,否则为0.

0 1 0 0 1 0 1 0 (A)

0 1 0 0 0 1 0 0 (B)

 

0 1 0 0 1 1 1 0(A | B)

按位与运算符AND(&):将两个新值结合起来,生成一个新的整数值,如果原始值中对应位都为1则新值相应位位1,否则位0.

0 1 0 0 1 0 1 0(A)

0 1 0 0 0 1 0 0(B)

0 1 0 0 0 0 0 0 (A&B)

按位非运算符:将一个值的二进制位对应0变为1,1变为0;

0 1 0 0 1 0 1 0(A)

1 0 1 1 0 1 0 1(~A)

异或运算符:将两个新值结合起来,生成一个新的整数值,相应的位相同得0不同得1.

 

0 1 0 0 1 0 1 0(A)

 

0 1 0 0 0 1 0 0(B)

 

0 0 0 0 1 1 1 0 (A^B)

 

posted @ 2020-05-08 20:07  Xxaj5  阅读(193)  评论(0编辑  收藏  举报