逻辑运算符+位运算符

逻辑运算符

& 与运算

分别计算两边的结果再作 & 运算,只有两个都为true,结果才为true,否则为false

| 或运算

分别计算两边的结果再作 | 运算,只有有一个为true,结果都为true,两边都为false才为false

^ 异或运算

两边相同为false,不同为true (异或两边不同)

&和&&的区别

&: 在逻辑运算时分别计算表达式两边的结果,再作&运算,在做位运算时&表示按位与

&&:短路与运算,先计算左边的表达式,如果结果是false,那么不用计算右边表达式,直接返回false

如果左边的表达式结果是true,再计算右边的表达式,如果右边的表达式为true,结果为true,否则为false //| 和 ||的原理同上。 // 所以短路与 或 短路或的计算效率更高,建议使用。

位运算符

对两个操作数中的每一个二进制都进行运算

位运算符功能:

1、按位取反 ~

2、按位与 &

3、按位或 |

4、按位异或 ^

 

位移运算符

左移:“ a<<b ;” 将二进制形式的a逐位左移b位,最低位空出的b位补0

带符号右移:“ a>>b ;” 将二进制形式的a逐位右移b位,最高位空出的b位补原来的符号位

无符号右移:“ a>>>b ;” 将二进制形式的a逐位右移b位,最高位空出的b位补0

 

 

面试题:以最快的速度计算8*4结果?

//int result = 8 *4;

// 0000 1000 8

// 0010 0000 32

System.out.println (8<<2);//最快计算速度

左移算法:位移数作为2的次幂与操作数相乘

例如:8*4=32 -----> 8<<2

右移算法:操作数除以位移数的2次幂

例如:40/4=10 -----> 40>>2

问题:通过键盘输入,初始化两个数将这两个数据交换位置后,输出显示交换后的数据。

(1)通过第三个变量来交换

(2)不通过第三个变量进行交换 

 

运算符优先级表

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值