Java学习 ---- 运算符

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();

猜你喜欢

转载自blog.csdn.net/qq_41898534/article/details/89396517