运算符描述实例
&按位与运算符"&"是双目运算符。 其功能是参与运算的两数各对应的二进位相与。(A & B) 结果为 12, 二进制为 0000 1100
|按位或运算符"|"是双目运算符。 其功能是参与运算的两数各对应的二进位相或(A | B) 结果为 61, 二进制为 0011 1101
^按位异或运算符"^"是双目运算符。 其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。(A ^ B) 结果为 49, 二进制为 0011 0001
<<左移运算符"<<"是双目运算符。左移n位就是乘以2的n次方。 其功能把"<<"左边的运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。A << 2 结果为 240 ,二进制为 1111 0000
>>右移运算符">>"是双目运算符。右移n位就是除以2的n次方。 其功能是把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数。A >> 2 结果为 15 ,二进制为 0000 1111

运算说明:

and运算&:

通常用于二进制的取位操作。一个数&1的结果就是取二进制的最末位。可以用来判断一个整数的奇偶。二进制最末位为0表示偶数,最末位为1表示奇数。

相同位的两个数字都为1,则结果为1,若有一个不为1,那么结果为0.

or 运算 | :

 通常用于二进制特定位上的无条件赋值。一个数 | 1的结果就是把二进制的最末未强行变成1.如果需要把二进制最末位变成0,需要对这个数进行 | 1之后再减1.实际意义是把这个数强行变成最接近 的偶数。

相同位只要一个为1即为1

     但是如果是作为一元运算符出现,他的意思是按位取反。

    1010的反码是0101:

    解析:

   1010在32位计算机存储为0000 1010

   1.求补码 : 1010取反以后结果为 1111 0101 (在计算机中,首位为0代表正数,首位是1代表负数)

   2. 求补码的逆:  先减1得:1111 0100  , 再取反(取反时符号位不变)得:0000 1011 ------计算结果为-11

   

     XOR是不进位加法计算,也就是异或计算。0000 0100 + 0000 0010 = 0000 0110 = 6

&^ 位清空

&^     位清空 (AND NOT)

和被运算变量位置有关系

左移<<

乘以2的n次方

右移>>

除以2的n次方