• Java:运算符的问题


    算术运算符:

    image_594bc412_77b8

    算术运算符的注意问题

    1. 如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数是负数就另当别论。

    -5%3=-2;-5%-3=-2;符号跟被模数(左边)。

    2. 对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。

    例如:int x=3510;x=x/1000*1000; x的结果是? 3000

    3560.0/1000*1000=3560.0

    3. “+”除字符串相加功能外,还能把非字符串转换成字符串 ,

    例如:System.out.println("5+5="+5+5);//打印结果是?5+5=10

    int a = 3; a+=5;几乎等同运算a=a+5;但+=隐含自动转换

    比较运算符/关系运算符:

    image_594bc412_43b0

    逻辑运算符:

    image_594bc412_2891

    · 逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 & x<6 。

    · “&”和“&&”的区别(不短路跟短路的区别):

    单&时,左边无论真假,右边都进行运算;

    双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。

    “|”和“||”的区别同理,双或时,左边为真,右边不参与运算。

    有些时候这个会导致计算不同:

    image_594bc412_3542

    3. 异或( ^ )与或( | )的不同之处是:异或左右都为true时,结果为false(true^true==false)。

    位运算符:

    image_594bc412_5c24

    位运算是直接对二进制进行运算。(补码)

    对于<< 和>>,移n位,就是对原数值乘以(<<)或者除以(>>)2的n次幂。

    image_594bc412_43ca

    · 不要迷糊--负数右移,原符号位上的数也右移!(如果原本该数为负数,按照原理,右移则看最高位补空缺,保证了此时的原数值的符号不变)

    特殊使用技巧:

    一个数X对同一个数异或两次,所得结果为X:6^3^3=6,3^6^3=6

    练习:

    11.最有效率的方式算出2乘以8等于几?2<<3?image_594bc412_6e67

    2.对两个整数变量的值进行互换

    · image_594bc412_2694

    · image_594bc412_7ff7

    · image_594bc412_303c

    &运算可用于获取二进制的有效位

    image_594bc412_6390

    image_594bc412_50e0

    异或

    image_594bc412_37fa

    image_594bc412_66bd

    位运算符可以操作字符,但结果为int

    image_594bc412_1ab2

    三元运算符:

    · 格式:

    (条件表达式)?表达式1:表达式2; 括号有时可没有,但为了格式化,写了好。

    如果条件为true,运算后的结果是表达式1;

    如果条件为false,运算后的结果是表达式2;

    · 示例:

    获取两个数中大数。

    int x=3,y=4,z;

    z = (x>y)?x:y;//z变量存储的就是两个数的大数。

    运算符优先级:

    image_594bc412_38c6

  • 相关阅读:
    互联网协议入门
    【HTTP】图解HTTPS
    《计算机本科生理想的学习计划》
    VC++ TinyXML
    TinyXML 在vs2010 VC++使用
    Hadoop2.4.1入门实例:MaxTemperature
    xcode6
    Android利用广播监听设备网络连接(断网)的变化情况
    编程算法
    Google的Guava之IO升华
  • 原文地址:https://www.cnblogs.com/progor/p/7067303.html
Copyright © 2020-2023  润新知