绊夏微凉

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Java基本运算符

算术运算符: +, -, *, /, %, ++, --

赋值运算符: =

关系运算符: <, >, <=, >=, ==, !=, instanceof

逻辑运算符: &&, ||, !

位运算符: &, |, ^, ~, <<, >>, >>>

条件运算符: ? :

扩展赋值运算符: +=, -=, *=, /=;


  System.out.println(2 / 3); // 0
  System.out.println(2 / 3.0); // 0.6666666666666666

  // % 取模,也是求余数
  System.out.println(3 % 2); // 1

  System.out.println(2 + 3 + ""); // 5
  System.out.println("" + 2 + 3); // 23

  Integer i = 2;
  System.out.println(2 instanceof int); // 错误 数据类型为基础数据类型不能用instanceof 引用类型才可以
  System.out.println(i instanceof Integer);

  // 逻辑运算符&&两边只能是boolean类型 位运算符&将数据转化成二进制,进行与操作 逻辑运算符||和位运算符|类型
  int a = 3;
  int a1 = 7;
  System.out.println(a && a1); // 错误
  System.out.println(a & a1);// 3
  System.out.println(a < a1 && a++ < a1); //true
  System.out.println(a < a1 & a++ < a1); //true
  System.out.println(true && false);//false
  System.out.println(true & false);//false

  // && || 短路问题
  int b = 4;
  System.out.println(b > 4 && b++ > 4); // false
  System.out.println(b); // 4
  System.out.println(b < 5 || b++ > 4); // true
  System.out.println(b); // 4

  // ^ 异或 将数据转化成二进制 相同为0 不同为1
  System.out.println(4 ^ 5); // 1

  // ~ 取反 将数据转化成八位的二进制 1变0 0变1
  System.out.println(~1); // -2

  // << 有符号左移  >> 有符号右移  >>> 无符号右移 转化成二进制 左移相当于数据*2 右移相当于数据/2
  //左移运算符<<: 符号位不变,低位补0
  //右移运算符>>:低位溢出,符号位不变,并用符号位补溢出的高位
  //无符号右移>>>:高位补0
  System.out.println(4 << 1); // 8
  System.out.println(4 >> 1); // 2
  System.out.println(0b11000000000000000000000000000000 << 1); //-2147483648
  System.out.println(0b00000000000000000000000000000011 >> 1); // 1
  System.out.println(-1 >> 1); // -1
  System.out.println(-1 >>> 1); // 2147483647

  // 条件运算符 ? : 会返回一个值
  // 条件 ? 符合返回的值 : 不符合返回的值
  System.out.println(1 <= 2 ? "否" : "是"); // 否

Java位运算实例

posted on 2021-03-05 11:34  绊夏微凉  阅读(39)  评论(0)    收藏  举报