zoukankan      html  css  js  c++  java
  • java基础之 运算符

    运算符分成:

    • 算术运算符
    • 关系运算符
    • 逻辑运算符
    • 位运算符
    • 赋值运算符
    • 其他运算符

    一、算数运算符

    算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。

    public class Main {
    
        public static void main(String[] args) {
            // 加法 + 相加运算符两侧的值
            // + 和字符串进行运算,起的是拼接作用
            System.out.println("1+2=" + (1 + 2));
            System.out.println("‘00‘+2=" + ("00" + 2));
            // 输出:
            // 1+2=3
            // ‘00‘+2=002
    
            //减法 - 左操作数减去右操作数
            System.out.println("10-1.9=" + (10 - 1.9));
            //输出:10-1.9=8.1
    
            //乘法 * 相乘操作符两侧的值
            System.out.println("2*3=" + (2 * 3));
            //输出:2*3=6
    
            //除法 / 左操作数除以右操作数
    
            //java中整数除于整数得到整数,产生的小数将强制去除
            //如果预计会出现小数,请使用双精度小数进行计算
            System.out.println("2/9=" + (2 / 9));
            System.out.println("5/3=" + (5 / 3));
            System.out.println("5.0/3=" + (5.0 / 3));
            System.out.println("5/3.0=" + (5 / 3.0));
            //被除数为0的,触发异常
            //System.out.println(2 / 0);
            // 输出:
            // 2/9=0
            // 5/3=1
            // 5.0/3=1.6666666666666667
            // 5/3.0=1.6666666666666667
    
            //取余 % 左操作数除以右操作数的余数
            System.out.println("2%9=" + (2 % 9));
            System.out.println("9%4=" + (9 % 4));
            // 输出:
            // 2%9=2
            // 9%4=1
    
            //自增运算 ++
            //++i; 表示先进行i=i+1后得到i的值
            //i++; 表示先得到i的值,在进行i=i+1;
            //自减运算符 -- 也同理
            int i = 1;
            System.out.println("i=1,2*++i=" + (2*++i));
            int j=1;
            System.out.println("j=1,2*j++=" + (2*j++));
            // 输出:
            // i=1,2*++i=4
            // j=1,2*j++=2
        }
    }

    二、关系运算符

    关系运算符主要用于计算布尔运算的,返回值只有Boolean类型的值。

    public class boolTest {
        public static void main(String[] args) {
            //  ==    检查如果两个操作数的值是否相等,如果相等则条件为真。
            System.out.println("1==1.0 " + (1 == 1.0));
    
            //  !=    检查如果两个操作数的值是否相等,如果值不相等则条件为真。
            System.out.println("1!=1 " + (1 != 1));
    
            //  >     检查左操作数的值是否大于右操作数的值,如果是那么条件为真。
            System.out.println("10.1>10 " + (10.1 > 10));
    
            //  <     检查左操作数的值是否小于右操作数的值,如果是那么条件为真。
            System.out.println("10.1<10 " + (10.1 < 10));
    
            //  >=    检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。
            System.out.println("10.1>=10 " + (10.1 >= 10));
    
            //  <=    检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。
            System.out.println("10.1<=10 " + (10.1 <= 10));
        }
    }
    //结果:
    // 1==1.0 true
    // 1!=1 false
    // 10.1>10 true
    // 10.1<10 false
    // 10.1>=10 true
    // 10.1<=10 false

     

     三、逻辑运算符

    java中逻辑运算符分为:&、&&、|、||、!

    &、&&表示:true&true=truetrue&false=falsefalse&false=false|、||表示:true|true=truetrue&false=truefalse&false=false

    !表示:翻转逻辑状态,例如:!true=fasle;

    其中的单个逻辑运算符表示先计算在比较,双逻辑运算符如果左边表达式已经得出结果,则不计算右边表达式。

    package test;
    
    public class AndOr {
        public static void main(String[] args) {
            boolean a = (1 == 1);
            System.out.println("双或:" + (a || m1(1)));
            System.out.println("单或:" + (a | m1(1)));
        }
    
        //这是用来测试是否调用了右边的表达式
        public static boolean m1(int num) {
            System.out.println("执行了m1()...");
            return num > 10;
        }
    
        /* 结果:
           双或:true
           执行了m1()...
           单或:true
        */
    }

    四、位运算符

    java定义的位运算符有

      &:如果相对应位都是1,则结果为1,否则为0;

       |:如果相对应位都是0,则结果为0,否则为1

      ^:如果相对应位值相同,则结果为0,否则为1

     〜:按位取反运算符翻转操作数的每一位,即0变成1,1变成0。

    <<:按位左移运算符。左操作数按位左移右操作数指定的位数。

    >>:按位右移运算符。左操作数按位右移右操作数指定的位数。

    >>>:按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。

    package test;
    
    public class BitOper {
        public static void main(String[] args) {
            int a = 4;// 4 = 0100
            int b = 13;// 13 = 1101
    
            // & 如果相对应位都是1,则结果为1,否则为0
            // 0100 & 1101 = 0100
            System.out.println("4&13=" + (a & b));
    
            // | 如果相对应位都是0,则结果为0,否则为1
            // 0100 | 1101 = 1101
            System.out.println("4|13=" + (a | b));
    
            // ^ 如果相对应位值相同,则结果为0,否则为1
            // 0100 ^ 1101 = 1001
            System.out.println("4^13=" + (a ^ b));
    
            // ~ 按位取反运算符翻转操作数的每一位,即0变成1,1变成0。
            // ~0100  = 1011
            System.out.println("~4=" + (~a));
    
            // << 按位左移运算符。左操作数按位左移右操作数指定的位数。
            // 0100<<2=0001 0000
            System.out.println("4<<2=" + (a<<2));
    
            // >> 按位右移运算符。左操作数按位右移右操作数指定的位数。
            // 0100>>2=0001
            System.out.println("4>>2=" + (a>>2));
    
            // >>> 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。
            // 1100>>>2=0011
            System.out.println("12>>>2=" + (12>>>2));
        }
    }

    打印结果:

    4&13=4
    4|13=13
    4^13=9
    ~4=-5
    4<<2=16
    4>>2=1
    12>>>2=3

    五、赋值运算符

    赋值运算符包括 =、+=、-=、*=、/=、%=、<<=、>>=、&=、|=、^=

    其中:

    = 表示把 右边的值赋值给左边;

    a+=b 等同于 a=a+b;

    a-=b 等同于 a=a-b;

    a*=b 等同于 a=a*b;

    a/=b 等同于 a=a/b;

    a%=b 等同于 a=a%b;

    a<<=b 等同于 a=a<<b;

    a>>=b 等同于 a=a>>b;

    a&=b 等同于 a=a&b;

    a|=b 等同于 a=a|b;

    a^=b 等同于 a=a^b;

  • 相关阅读:
    3.24 每日一题题解
    3.23 每日一题题解
    3.22 每日一题题解
    【POJ1222】EXTENDED LIGHTS OUT
    【BZOJ1013】球形空间产生器sphere
    【hdu4135】【hdu2841】【hdu1695】一类通过容斥定理求区间互质的方法
    【HDU5862】Counting Intersections
    【HDU1542】Atlantis
    【自定义】抢妹子大作战
    【HDU5361】In Touch
  • 原文地址:https://www.cnblogs.com/lixingwu/p/9248734.html
Copyright © 2011-2022 走看看