2-3、运算符

语雀原文链接

1、算术运算符

  • +:加法
  • -:减法
  • *:乘法
  • /:除法取商
  • %:取余取模
  • ++:自增运算符
    • i++:先使用i的值,再对i做增1的操作
    • ++i:先对i做增1的操作,再使用i的值
  • –:自减运算符
    • i–:先使用i的值,再对i做减1的操作
    • –i:先对i做减1的操作,再使用i的值
  • 整型和浮点型的运算结果是浮点型
        int a = 6;
        int b = 4;
        System.out.println( a+b);//10
        System.out.println( a-b);//2
        System.out.println( a/b);//1
        System.out.println( a%b);//2

        System.out.println(a++);//6
        System.out.println(a);//7
        System.out.println(++a);//8

        // 整型和浮点型的结果是浮点型
        // 以下代码报错:从double转换到float可能会有损失
        float f = 6 * 1.0;
  • 代码例子
        int i=10;
        i++;
        System.out.println("i值是:"+i);//11

        int j=20;
        j++;
        System.out.println("j值是:"+j);//21

        int m=10;
        int n=m++;
        System.out.println("m值是:"+m);//11
        System.out.println("n值是:"+n);//10

        int x=10;
        int y=++x;
        System.out.println("x值是:"+x);//11
        System.out.println("y值是:"+y);//11

2、关系运算符

image.png

        int a = 10;
        int b = 5;

        boolean c = a==b;
        System.out.println(a==b);// false
        System.out.println(a!=b);// true
        System.out.println(a<b);// false
        System.out.println(a>b);// true
        System.out.println(a<=b);// false
        System.out.println(a>=b);// true

3、逻辑运算符

  • &&:第一个为false,右边就不计算了,直接返回false ;
  • &:不管如何左右都计算
  • || :第一个为true 右边就不计算了,直接返回true;
  • | :不管如何左右都计算

4、赋值运算符

image.png

        int b = 4;
        b+=4;//b=b+4  ->8
        b-=4;//b=b-4  ->4
        b*=4;//b=b*4  ->16
        b/=4;//b=b/4  ->4
        b%=4;//b=b%4  ->0

5、移位运算符

  • <<:向左移位(a<<3左移3位,低位补0,扩大2^3倍)
  • :带符号向右移位(a>>3右移3位,高位补原符号位,缩小2^3倍)

  • :无符号向右移位(a>>>3右移3位,高位补0,缩小2^3倍)

        System.out.println(3 << 1);//6
        System.out.println(-3 << 1);//-6


        System.out.println(8 >> 1);//4
        System.out.println(-8 >> 1);//-4

        // 原码8 = 00000000 00000000 00000000 00001000
        // 反码 = 111111111 111111111 111111111 11110111
        // 补码 = 111111111 111111111 111111111 11111000
        // 无符号右移一位,高位补0 01111111 111111111 111111111 11111100 = 2147483644
        System.out.println(-8 >>> 1);//2147483644

image.png
image.png

6、位运算符(二进制位进行运算)

image.png

        int a = 0b11;
        int b = 0b01;
        int c = a&b;//0b01

        System.out.println(~a);//0

7、条件运算符:三目运算符

  • 表达式1?表达式2:表达式3
int aa = 25;
int bb = 44;

int result = aa>bb?aa:bb;

8、运算符的优先级

  • 优先级比较复杂,直接加()解决优先级问题

image.png

猜你喜欢

转载自blog.csdn.net/sinat_35615296/article/details/134908324
今日推荐