zoukankan      html  css  js  c++  java
  • 第二章、运算符

    运算符

    1.算数运算符(重点)

    +(加)、-(减)、*(乘)、/(除)、%(取余)
     
    注意事项:
        1.当两个整数进行除法运算时候,结果只取整数部分,小数部分舍弃。
        2.当希望结果中保留小数部分,具体方法如下:
            a.将其中一个操作数强转为double类型在做运算
            b.将其中一个操作数乘以1.0提升为double类型再运算(推荐)
        3. 0不能作为除数,否则产生 java.lang.ArithmeticException(算数异常): / by zero
            但是0.0可以做除数但结果是无穷大的,因此以后开发中避免使用0和0.0作为除数。
     
     
    经验分享:
        a.当+两边的操作数中只要有一个字符类型,则按照字符连接符来处理,结果依然是字符
        b.将+两边的操作数都不是字符串时,则按照算数运算符来处理。
    

    2.字符串连接运算符(重点)

    “+”可以是实现字符串的连接。同时可以实现字符串与其他数据类型的相连。
    

    3.自增减运算符(重点)

    ++(自增)、--(自减)
     
     
    + 表示加法运算   ++ 表示自增,也就是让当前变量自身的数值加1.
    - 表示减法运算   -- 表示自减,也就是让当前变量自身的数值减1.
     
    ia + ib     ia++;
     
    ++(--)可分为前++ 和后++(--)
     
     
     
    ++ia 当++在前面的时候先进行加1的操作,然后再进行其他运算;
    ia++ 当++再后面的时候先其他运算,然后再进行加1的操作
     
    --ia 当--在前面的时候先进行减1的操作,然后再进行其他运算;
    ia-- 当--在后面的时候先进行其他运算操作,然后再进行减1;
     
     
     
    要求大家掌握的方法:
        单独使用变量进行自增减的操作,建议尽量不要与其他运算符混合使用
    

    4.赋值运算符(重点)

    =、+=、-=、*=、/=、%=
     
    赋值运算符将右边表达式的运算结果赋值给左边变量的运算符
     
     
    <1>简单赋值
        =  表示赋值运算符,用于将=右边的数据赋值给=左边的变量,覆盖该变量原来的数值。
     
    <2>复合赋值
        +=、-=、*=、/=、%=
    

    5.关系/比较运算符(重点)

    >、<、==、<=、!=、>=
     
    比较运算符是用来判断两个表达式或值大小关系的运算符。
     
    >  表示是否大于运算符 
    <   表示是否小于运算符
    ==  表示是否等于运算符
    <=  表示是否小于等于运算符
    !=  表示是否不等于运算符
    >=  表示是否大于等于运算符
     
    关系运算符参与的表达式最终结果为boolean类型,  true(真) 和false(假)
    

    6.逻辑运算符(重点)

    逻辑运算符操作数为boolean表达式
     
        Java提供的逻辑运算符有   &&(与)  ||(或)   !(非)
     
     
        &&(与)   表示逻辑与运算符,相当于“并且” ,同真为真,一假为假
     
        ||(或)  表示逻辑或运算符,相当于“或者”,一真为真,同假为假。
     
        !(非)    表示逻辑非运算符,相当于取反,真为假 ,假为真
     
     
    && 和 || 具备短路的特性: 如果通过第一个表达式的值即可得出最后的结果,则补计算第二个表达式。
     
     
    短路的特性:
        逻辑与:若第一个条件为假则整个表达式一定为假,此时跳过第二个条件的执行。
        逻辑或:若第一个条件为真则整个表达式一定为真,此时跳过第二个条件的执行
    

    7.条件/三目运算符(看情况而定)

    <1>语法格式:
        条件表达式 ? 表达式1 : 表达式2
     
    <2>执行流程
        判断条件表达式是否成立
            = 若成立,则执行表达式1
            = 若不成立,则执行表达式2
    

    8.移位运算符(了解)

    左移(<<)  、算数右移(>>)   、逻辑右移(>>>)
     
    移位运算针对二进制移动
     
     
    <<  -  表示左移运算符,用于讲该整数的二进制向左边移动,右边补0 (丢去最高位,0补最低位)
     
    举例:
        5<<5
        0000 0101(5的二进制)
     
        0000 1010(第一次移动)
        0001 0100(第二次移动)
        0010 1000(第三次移动)
        0101 0000(第四次移动)
        1010 0000(第五次移动)    ---- 结果 160 = 128+32
     
     
    >> -- 表示右移运算符,用于将整数的二进制向右移动,左边补符号位.
     
     
    >>> -表示无符号右移运算符,忽略符号位,用于将整数二进制向右边移动,左边补0
    

    9.位运算符(了解)

    &按位与、 |按位或 、^按位异或、 ~按位非,按照二进制逐位进行二进制运算。
     
     
    &按位与    -  用于将整数的二进制进行与运算 , 同1 为1  ,一0为0
     
        举例:
            5&8
            0000 0101
            0000 1000
        -------------------
            0000 0000  0
     
     
     |按位或
            一1为1,同0为0
     
        运算规则:  0|0 = 0 ;  0|1 = 1; 1|0 = 1 ;  1|1 = 1;
     
        举例
            5|8
            0000 0101
            0000 1000
            ---------------
            0000 1101   --结果13  
     
     
    ^按位异或
            相同为0  不同为1
        运算规则: 0^0 = 0;  0^1=1; 1^0 = 1; 1^1 = 0;
     
        举例:
     
            5^8
            0000 0101
            0000 1000
            ---------------
            0000 1101   ---13
     
    ~按位非
        按照二进制取反运算,1为0 ,0为1
     
        举例:
            ^8---
                0000 1000(二进制)
                1111 0111 (1为0 ,0为1)(现在是负的二进制,转换成十进制输出)
                0000 1000 (按位取反)
                0000 1001(加一)
                9           (是进制整数)
                -9          (前面添加符号)   
     
     
     
            ^-10----
                0000 1010       (-10的绝对值转换为二进制)
                1111 0101       (按位取反)
                1111 0110       (加一)
                0000 1001       (反码)
                9               (转换为十进制)
     
     
     
        举例(八位为例):
            7:0000 0111
            -7:1000 0111
     
        反码:
            正数的反码就是它本身
            负数的反码,就是将原码的非符号部分,每一位取反
        举例:
            7:0000 0111
            -7:1111 1000
     
     
        补码:
            正数的补码也是它本身
            负数的补码,符号位不变,其余每一位取反之后,最后加一(反码+1)
     
            举例:
                7:0000 01111
                -7:1111 1001
    

    10.运算符优先级

    (1) () 的优先级极高
    (2) = 的优先级极低
    (3) * / %的优先级 高于 + -,同级的优先级谁在前谁先执行。
    

    11.表达式

    表达式其实就是由操作数和运算符组成的。
     
     
        例如:
            int a = 10;    int b = 5-3;
            a>b             true && false;
    
  • 相关阅读:
    C#中List<T>用法
    windows phone中,将crash report记录下来,写入文件,方便分析
    解决问题之,wp项目中使用MatchCollection正则表达式匹配出错
    提问的智慧
    toolkit,phonetextbox中实现用户按回车键会换行
    Hibernate主键生成策略
    hibernate.cfg.xml位置及JDBC配置
    Java与数字签名
    MyEclipse不能编译的一种解决方法
    java读文件和写文件编码方式的控制
  • 原文地址:https://www.cnblogs.com/borntodie/p/14092701.html
Copyright © 2011-2022 走看看