位运算符

1、位运算符操作的都是整形的数据

2、 << :在一定范围内,每向左移一位,相当于 * 2 ;

  >> :在一定范围内,每向右移一位,相当于 / 2;

 

经典例题1:你能否写出最高效的 2 * 8的实现方式?

答案: 2 << 3   或     8 << 1

 

经典例题2:以下代码的执行结果

public class Test1{
public static void main(String[] args) {
int a = 8, b = 3;
System.out.println(a>>>b);
System.out.println(a>>>b | 2);
}
}

 

 

答案:

1

3

 

 

 

补充:

位运算符跟其他运算符一样,在进行计算时,会先向上转型为int类型再进行位运算。

例:

byte  b1 = 12;

byte  b2 = 33;

//错误代码

byte result = b1 & b2;//编译会出错,因为b1、b2会向上转型为int类型再进行计算,所以此处需要强转

//正确代码

byte result = (byte)(b1 & b2);

 

posted @ 2019-05-07 11:45  战胜橘子  阅读(208)  评论(0编辑  收藏  举报