概念

位运算指的是对二进制进行的计算处理。主要有 与(&)、或(|)、异或(^)、求反(~)

  • 与运算

其特征为:“都是1的时候才是1”
如:

13 & 7 =

计算过程为:
13的二进制:1101
7的二进制: 0111
得到结果 0101 转换成10进制则是5

  • 或运算

其特征为:“有一位是1结果就是1”

13 | 7 

计算过程为
1101
0111
按照或运算得到结果是
1111
转化成10进制为:15

  • 移位运算

向左移位:<<
向右移位:>>
表示二进制数向左或者向右移位
例如

int x = 2;
int result = x << 2;
System.out.println(result);//8

计算结果过程如下
2的二进制为 0010
向左移位2则为 1000 ,转换成10进制则得到结果为8。

进制之间的转换

参考http://c.biancheng.net/view/1...

面试题

&、| 和 &&、||有什么区别?
答:
1.都可以做逻辑运算符,做逻辑运损符时,&和|的所有条件都需要执行,而&&和或的并不是所有条件都需要进行判断。例如 1==1 || 2==2 || 3==3 此时 1==1执行完毕后则不会再进行后续判断,而 1==1 | 2==2 | 3==3 则需要将所有条件都执行。
2.|和&可以做位运算符,对数据进行二进制计算。


何翔
1 声望0 粉丝

好的代码是给人看的,而愚蠢的代码是给机器运行的。