算数运算符

数运算符

符号:+、-、*、/、%、++、–

一、运算符的使用

1.+,-,*,/,%:

public class Test01{
    public static void main(String[] args){
		int n1 = 10;int n2 = 5;int reuslt = n1 + n2;System.out.println(reuslt);//15System.out.println(n1 - n2);//5System.out.println(10 * 5);//50System.out.println(10 / 5);//2System.out.println(10 % 3);//1
    }
}

2.++,–:

++:在自身的基础上加1。

++x:先自增1,再使用;x++: 先使用,再自增1。

public class Test01{
	public static void main(String[] args){
        //++a:先自增1,再使用
		int a = 10;
		System.out.println(++a);//11
		System.out.println(a);//11//b++: 先使用,再自增1int b = 10;System.out.println(b++);//10System.out.println(b);//11
    }
}

" - - ":在自身的基础上减1。

" - - x":先自减1,再使用;"x - - ":先使用,再自减1 。

public class Test01{
    public static void main(String[] args){
        //--c:先自减1,再使用
        int c = 10;
        System.out.println(--c);//9
        System.out.println(c);//9

        //d--:先使用,再自减1 
        int d = 10;
        System.out.println(d--);//10
        System.out.println(d);//9
    }
}

二、特殊例题

特例1:

1.两个byte类型做运算,会向上转型成int类型再做运算。

public class Test01{
    public static void main(String[] args){
        byte b1 = 10;
        byte b2 = 5;
       //b1 - byte : 0000,1010
       //	   int  : 0000,0000,0000,0000,0000,0000,0000,1010
       //b2 - byte : 0000,0101
       //	   int  : 0000,0000,0000,0000,0000,0000,0000,0101
       //运算结果int:0000,0000,0000,0000,0000,0000,0000,1111
       //强转为byte: 0000,1111
       byte result = (byte)(b1 + b2);	
       System.out.println(result);
    }
}

特例2:

2.两个short类型做运算,会向上转型成int类型再做运算。

public class Test01{
    public static void main(String[] args){
        short s1 = 10;
				short s2 = 5;
				//s1 - short : 0000,0000,0000,1010
				//	   int   : 0000,0000,0000,0000,0000,0000,0000,1010
				//s2 - short : 0000,0000,0000,0101
				//	   int   : 0000,0000,0000,0000,0000,0000,0000,0101
				//运算结果int : 0000,0000,0000,0000,0000,0000,0000,1111
				//强转为short : 0000,0000,0000,1111
				short result = (short)(s1 + s2);
				System.out.println(result);
    }

}

特例3:

3.除了byte和short类型做运算时会向上转型成int外,其余的数值型都会按照取值范围大的类型先转型再做运算。

public class Test01{
    public static void mian(String[] args){
        byte b = 10;
        short s = 10;
        int i = 10;
        long l = 10;
        float f = 10.1f;
        double d = 10.1;
        System.out.println(b + s);//int类型的结果
        System.out.println(b + i);//int类型的结果
        System.out.println(s + i);//int类型的结果
        System.out.println(i + l);//long类型的结果
        System.out.println(l + f);//float类型的结果
        System.out.println(f + d);//double类型的结果
    }
}

特例4:

4.浮点类型做运算符底层会对阶,可能导致失去精度。(对于敏感信息(金额)不要使用浮点类型直接做运算)

public class Test01{
    public static void main(String[] args){
        double d1 = 0.5;
        double d2 = 0.4;
        System.out.println(d1 - d2);//0.099999999999998
    }
}

特例5:

  1. char类型可以做运算,先获取字符的ASCII,再做运算
public class Test01{
    public static void main(String[] args){
        char c = 'a';//ASCII - 97
		System.out.println(c + 1);//98
    }
}

特例6:

6.++num1; 和 num2++; 没有区别,因为;表示执行语句的结束,不管先加还是后加都给我加。

public class Test01{
    public static void mian(String[] args){
        int num1 = 10;
        ++num1;
        System.out.println(num1);//11

        int num2 = 10;
        num2++;
        System.out.println(num2);//11
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值