Day03.01___逻辑运算符
- &( 逻辑与 ) —> 两个条件都为true时,结果才为true。其余的都为false
- | ( 逻辑或 ) —> 两个条件都为false时,结果才为false。其余的都为true
- ^( 逻辑异或 ) —> 两个条件相同时为false,其余的都为ture
- ! ( 逻辑非 ) —> !true为false,!false为true
- &&( 短路与 ) —> 两个条件都为true时,结果才为true。其余的都为false
- || ( 短路或 ) —> 两个条件都为false时,结果才为false。其余的都为true
- 逻辑与( & )与短路与( && )的区别:
&无论什么情况,两边都会参与运算
&&左边为false,右边就不再参与运算;左边为true,右边参与运算 - 逻辑或( | )与短路或( || )的区别:
|无论什么情况,两边都会参与运算
||左边为true,右边就不再参与运算;左边为false,右边参与运算
Day03.02___位运算符
- &( 与运算 ) —> 运算时根据上面的逻辑进行运算
110 0&1 --> 0
&101 1&0 --> 0
------------------------- 1&1 --> 1
100 - | ( 或运算 ) —> 运算思路与&运算相同
- ^( 异或运算 ) —> 运算思路与&运算相同
- 一个数被同一个数异或两次,结果就是其本身
- ~( 取反运算 ) —> 将二进制的所有bit位都取反,包括符号位。与原来的取反不同,原来的取反符号位不变,其余的都要取反
例子:交换两个变量中的值(面试题)
int a = 10;
int b = 5;
a = a ^ b ^ 10; // a^b = 10510=5
b = a ^ b ^ 5; // a^b = 1055=10
总结:一个数被异或两次,其结果就等于其本身 - “>>”(有符号右移) —> 6>>1表示将6的二进制向右移一位。向右移动几次就是除以2的几次幂
- “<<”(有符号左移) —> 6<<1表示将6的二进制向左移一位。向左移动几次就是乘以2的几次幂
- “>>>”(无符号右移) —> 和有符号右移的方式相同
- 无符号右移(>>>)与有符号右移(>>)的区别:
- 当移动的数为负数时:
无符号右移在最左边添加的是0
有符号右移在最左边添加的是1
- 当移动的数为负数时:
Day03.03___三元运算符
- 格式:(条件表达式)?表达式一:表达式二
条件表达式为true执行表达式一,否则执行表达式二 - 当后面的表达式为true、false时可以省略表达式
Day03.04___键盘录入
- 步骤
(1)导入包 java.util.Scanner
(2)创建对象 Scanner sc = new Scanner(System.in);
(3)输入内容int x = sc.nextIn();