《学习笔记23》——位运算符的使用

位运算符 说明
&(与) 两个操作数中位都为1,结果才为1,否则结果为0
|(或) 两个位只要有一个为1,那么结果就是1,否则就为0
^(异或) 两个操作数的位中,相同则结果为0,不同则结果为1
~(非) 如果位为0,结果是1,如果位为1,结果是0
<< 左移运算符
>> 右移运算符

例子:

A = 0011 1100

B = 0000 1101

进行与运算

A&B = 0000 1100

进行或运算

A|B = 0011 1101

进行异或运算

A^B = 0011 0001

进行非运算

~A = 1100 0011

~B = 1111 0010


当我们要显示2*8=16时,我们可以这样表达:2*(2*2*2)=16

在二进制中我们通常这样表示:

二进制的值 十进制的值
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16

从上面的表中,我们可以发现当二进制中的“ 1 ”往左移动一位时,十进制的值乘了“ 2 ”。

2到16的过程中,“ 1 ”往左移动了三位。

故可以用以下位运算符表示:

2<<3

上一篇:二进制手指计数法


下一篇:ZZULIOJ 1100: 求组合数(函数专题)