Java运算符与表达式

一、赋值运算符与赋值表达式

  赋值运算符:“=”
  例如:int num = 100;

二、算术运算符与算数表达式

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

例如:

public class SuanShu{
	public static  void  main(String args[]){
		//+  -  *  /  % 
		int num1=10;
		int num2=3;
		System.out.println(num1+"+"+num2+"="+(num1+num2));
		System.out.println(num1+"-"+num2+"="+(num1-num2));
		System.out.println(num1+"*"+num2+"="+(num1*num2));
		//当参数算术运算的数据是整数时,运算结果就是整数
		System.out.println(num1+"/"+num2+"="+(num1/num2));
		System.out.println(num1+"%"+num2+"="+(num1%num2));
	}
}

  在混合运算过程中,运算结果的数据类型以运算过程中精度最高的数据类型为准

public class SuanShu2{
	public static  void  main(String args[]){
		//四则混合运算,参数运算的数据类型不是同一类
		//当参与算术运算的数据类型不是同一类时,
		//它的运算结果的数据类型是精度最高的数据类型
        byte b=100;
		short  s=200;
		int i=300;
        long l=400L;
        float f=3.14f;
        double d=2.7;
        char  c='A';
		//-1545.5599853515625----double
        System.out.println(b+s-i*l/c+f);
	}
}

三、“++”与“- -”的具体用法

  “++”——自动加1

    1.变量++;——【先用后加】
    2.++变量;——【先加后用】

  “- -”—— 自动减1

    3.变量- -;【先用后减】
    4.- -变量;【先减后用】

例如:

public class SuanShu3{
	public static  void  main(String args[]){
		//“++”————>自动加1
		//1.变量++;【先用后加】
		/*
        int  num1=10;
        System.out.println("变量++=="+(num1++));//10 先用
        System.out.println("num1=="+num1);//11 后加
		*/

		//2.++变量;【先加后用】
		/*
		int  num1=10;
		System.out.println("++变量=="+(++num1));//11 先加
        System.out.println("num1=="+num1);//11 后用
        */
        
		//“--”————> 自动减1
		//3.变量--;【先用后减】
		/*
        int  num1=10;
        System.out.println("变量--=="+(num1--));//10 先用
        System.out.println("num1=="+num1);//9 后加
		*/
		
		//4.--变量;【先减后用】
        int  num1=10;
        System.out.println("--变量=="+(--num1));//9 先用
        System.out.println("num1=="+num1);//9 后加
	}
}

四、关系运算符与关系表达式

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

public class GuanXi{
	public static  void  main(String args[]){
		//关系运算符:  >  <  >=  <=  ==  !=
		//关系运算符的结果一定是boolean值
		int  num1=10;
        int  num2=3;
		System.out.println(num1+" > "+num2+"="+(num1>num2));
		System.out.println(num1+" < "+num2+"="+(num1<num2));
		System.out.println(num1+" >= "+num2+"="+(num1>=num2));
		System.out.println(num1+" <= "+num2+"="+(num1<=num2));
		System.out.println(num1+" == "+num2+"="+(num1==num2));
		System.out.println(num1+" != "+num2+"="+(num1!=num2));
	}
}

五、逻辑运算符与逻辑表达式

  逻辑运算符分为两大类:
    1.逻辑运算符
    2.位运算符
  逻辑运算符:逻辑或 || 逻辑与 && 逻辑反 !
  逻辑运算符的运算值和运算结果一定是boolean
例如:

public class LuoJi1{
	public static  void  main(String args[]){
		int  num1=10;
        int  num2=3;
		//逻辑或 ||
        boolean  b1 =((num1+num2)>10) || ((num1-num2)<3) ;
		System.out.println("b1=="+b1);
		//逻辑与 &&
		boolean  b2 =((num1+num2)>10) && ((num1-num2)<3) ;
		System.out.println("b2=="+b2);
		//逻辑反  !
		boolean  b3 =!(((num1+num2)>10) && ((num1-num2)<3)) ;
		System.out.println("b3=="+b3);
	}
}

六、短路与和短路或

  短路或–逻辑或的运算规则
    【运算符号左右两边都是false的时候,运算结果就一定是false,如果出现一个true,运算结果就一定是true】
  短路或—短路就是运算符号只运算一边
    当运算符号左边的结果为true时候,右边不用计算,结果就一定是true.

  短路与–逻辑与的运算规则
    【运算符号左右两边都是true的时候,运算结果就一定是true,如果出现一个false,运算结果就一定是false】
  短路与—短路就是运算符号只运算一边
    当运算符号左边的结果为false时候,右边不用计算,结果就一定是false

例如

public class LuoJi2{
	public static  void  main(String args[]){
		//短路或:当运算符号左边的结果为true时候,右边不用计算,结果就一定是true.
		int num1=10;
		//System.out.println(num1/0);
        boolean b1= (num1 < 20) || ((num1/0)>10);
		System.out.println("b1="+b1);

		//短路与:当运算符号左边的结果为false时候,右边不用计算,结果就一定是false
		int num2=100;
        boolean b2= (num2 < 20) && ((num2/0)>10);
		System.out.println("b2="+b2);
	}
}

七、位运算符

  位运算:就是将参与运算的数据转换成2进制【0101001】
  10进制与2进制的转换
  1. 原码
    原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值.
  2. 反码
    反码的表示方法是:
    正数的反码是其本身【原码】
    负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
  3. 补码
    补码的表示方法是:
    正数的补码就是其本身【原码】
    负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
  整数的2进制就是源码
  负数的2进制实质上补码表示。
    -3 => 10000011—>11111100—>11111101【负数的原码取反+1】{符号位不变}
    -3 => 00000011【3】—>11111100【取反】—>11111101【+1】 【负数的绝对值的原码的取反+1】
    -7 => 00000111【7】—>11111000【取反】—>11111001【+1】
   -12 => 00001100【12】—>11110011【取反】—>11110100【+1】
在这里插入图片描述

常见的6种位运算符号

  1. & 按位与 相同位为1则为1,不同为0,相同位为0则为0。
     例如:3 & -7
    0000 0011 【3】
    1111 1001 【-7】
    0000 0001 【1】

  2. | 按位或 相同位只要一个为1即为1。
    例如:3 | -7
    0000 0011 【3】
    1111 1001 【-7】
    1111 1011 【-5】

  3. ^ 按位异或 相同位不同则为1,相同则为0。
     例如:3 ^ -7
    0000 0011 【3】
    1111 1001 【-7】
    1111 1010 【-6】

  4. ~取反 0和1全部取反
     例如:~3
    0000 0011 【3】
     1111 1100 —> 1111 1011【+1】 —> 1000 0100【取反】 【-4】

  5. <<左移位 2进制整体向左移动指定的位数
     例如 : 3 << 2
    0000 0011 【3】
    0000 0110 移动1位
    0000 1100 移动2位 —> 【12】

  6. >>右移 2进制整体向右移动指定的位数
     例如 : 3 >> 2
    0000 0011 【3】
    0000 0001 移动1位
    0000 0000 移动2位 —> 【0】
例如:

public class LuoJi3{
	public static  void  main(String args[]){
		//1.& 按位与 相同为1,不同为0。
		int num1=3;
		int num2=-7;
		System.out.println(num1 & num2); // 1
		//2.| 按位或  相同位只要一个为1即为1。
		System.out.println(num1 | num2); // -5
		//3.^ 按位异或  相同位不同则为1,相同则为0。
		System.out.println(num1 ^ num2); // -6 
		//4.~取反   0和1全部取反
		System.out.println(~num1); // -4
		//5.<<左移位  2进制整体向左移动指定的位数
		System.out.println(num1 << 2); //
		//6.>>右移位  2进制整体向右移动指定的位数
		System.out.println(num1 >> 2); // 0
		System.out.println(2 << 3); 
	}	
}


八、运算符号的优先级

在这里插入图片描述

总结

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值