运算符-小学生都能学会的java基础

1 运算符

  • 运算:对常量和变量进行操作的过程称为运算。

  • 运算符:对常量和变量进行操作的符号称为运算符

  • 操作数:参与运算的数据称为操作数

  • 用运算符把常量或者变量连接起来符号java语法的式子就可以称为表达式。
    不同运算符连接的式子体现的是不同类型的表达式。

举例:int a = 3 + 4;
这是做了一个加法运算,+就是运算符,是算术运算符,我们还有其他很多的运算符,3和4就是参与运算的操作数据,3 + 4整体其实就是一个算数表达式

2 算术运算符

算术运算符

除法的时候要注意一个问题,整数相除,只能得到整数,要想得到小数,可以*1.0

  • ++和--的应用
    单独使用:放在操作数的前面和后面效果一样。(这种用法是我们比较常见的)
    参与运算使用:放在操作数的前面,先自增或者自减,然后再参与运算;放在操作数的后面,先参与运算,再自增或者自减。
    作用:就是对变量进行自增1或者自减1。

  • +的用法:加法,正号,字符串连接符

  • 运算符的优先级(由高到低)

运算符的优先级

3 赋值运算符

基本的赋值运算符:=,把=右边的数据赋值给左边。
扩展的赋值运算符:+=、-=,*=,/=,%=,+= 把左边和右边做加法,然后赋值给左边。

4 关系运算符

关系运算符
  • 比较运算符的结果都是boolean型,也就是要么是true,要么是false。

  • 比较运算符“==”不能误写成“=”

5 逻辑运算符

逻辑运算符
  • 逻辑运算符用于连接布尔型表达式,在Java中不可以写成 `3

    <x<6`,应该写成x style='font-size: inherit;color: inherit;line-height: inherit;'>3 & x<6 。

    </x<6`,应该写成x>

  • “&”和“&&”的区别

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

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

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

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

6 位运算符

位运算是直接对二进制进行运算

位运算符
位运算符的细节
/*
    位运算符:
        &,|,^,~
        <<,>>,>>>

注意:
        要做位运算,首先要把数据转换为二进制。
*/
class OperatorDemo {
    public static void main(String[] args) {
        //&,|,^,~

int a = 3;
        int b = 4;

System.out.println(3 & 4);
        System.out.println(3 | 4);
        System.out.println(3 ^ 4);
        System.out.println(~3);
    }
}
/*
    分析:因为是位运算,所以我们必须先把数据换算成二进制。

3的二进制:11
        00000000 00000000 00000000 00000011
    4的二进制:100
        00000000 00000000 00000000 00000100

&位与运算:有0则0。
        00000000 00000000 00000000 00000011
        &00000000 00000000 00000000 00000100
        -----------------------------------
        00000000 00000000 00000000 00000000
        结果是:0

|位或运算:有1则1。
        00000000 00000000 00000000 00000011
        |00000000 00000000 00000000 00000100
        -----------------------------------
        00000000 00000000 00000000 00000111
        结果是:7

^位异或运算:相同则0,不同则1。
        00000000 00000000 00000000 00000011
        &00000000 00000000 00000000 00000100
        -----------------------------------
        00000000 00000000 00000000 00000111
        结果是:7

~按位取反运算符:0变1,1变0
        00000000 00000000 00000000 00000011
       ~11111111 11111111 11111111 11111100 (补码)

补码:11111111 11111111 11111111 11111100
       反码:11111111 11111111 11111111 11111011
       原码:10000000 00000000 00000000 00000100
       结果是:-4
*/

7 三目运算符

  • 格式:(关系表达式)?表达式1:表达式2;

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

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

  • 示例:获取两个数中大数。

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

8 运算符的优先级

在对一些比较复杂的表达式进行运算时,要明确表达式中所有运算符参与运算的先后顺序,把这种顺序称作运算符的优先级。

1500703686246

9 Math

Math类提供了常用的一些数学函数,如:三角函数、对数、指数等。一个数学公式如果想用代码表示,则可以将其拆分然后套用Math类下的方法即可。

Math.abs(12.3);                 //12.3 返回这个数的绝对值  
Math.abs(-12.3);                //12.3

Math.copySign(1.23, -12.3);     //-1.23,返回第一个参数的量值和第二个参数的符号  
Math.copySign(-12.3, 1.23);     //12.3

Math.signum(x);                 //如果x大于0则返回1.0,小于0则返回-1.0,等于0则返回0  
Math.signum(12.3);              //1.0  
Math.signum(-12.3);             //-1.0  
Math.signum(0);                 //0.0  

指数

//指数  Math.exp(x);                    //e的x次幂  Math.expm1(x);                  //e的x次幂 - 1  

Math.scalb(x, y);               //x*(2的y次幂)  Math.scalb(12.3, 3);            //12.3*2³  

取整

//取整  
Math.ceil(12.3);                //返回最近的且大于这个数的整数13.0  
Math.ceil(-12.3);               //-12.0

Math.floor(12.3);               //返回最近的且小于这个数的整数12.0  
Math.floor(-12.3);              //-13.0  

平方根立方更

//x和y平方和的二次方根  Math.hypot(x, y);               //√(x²+y²)  

//返回概述的二次方根  Math.sqrt(x);                   //√(x) x的二次方根  Math.sqrt(9);                   //3.0  Math.sqrt(16);                  //4.0  

//返回该数的立方根  Math.cbrt(27.0);                //3   Math.cbrt(-125.0);              //-5  

最大最小值

//返回较大值和较小值  
Math.max(x, y);                 //返回x、y中较大的那个数  
Math.min(x, y);                 //返回x、y中较小的那个数  

对数与幂

//对数函数  Math.log(e);                    //1 以e为底的对数  Math.log10(100);                //10 以10为底的对数  Math.log1p(x);                  //Ln(x+ 1)  

//返回 x的y次幂  Math.pow(x, y);                   Math.pow(2, 3);                 //即2³ 即返回:8  

随机

//随机返回[0,1)之间的无符号double值  
Math.random();

//返回最接近这个数的整数,如果刚好居中,则取偶数  
Math.rint(12.3);                //12.0   
Math.rint(-12.3);               //-12.0  
Math.rint(78.9);                //79.0  
Math.rint(-78.9);               //-79.0  
Math.rint(34.5);                //34.0  
Math.rint(35.5);                //36.0

Math.round(12.3);               //与rint相似,返回值为long  

三角函数与角度

//三角函数  Math.sin(α);                    //sin(α)的值  Math.cos(α);                    //cos(α)的值  Math.tan(α);                    //tan(α)的值  

//求角  Math.asin(x/z);                 //返回角度值[-π/2,π/2]  arc sin(x/z)  Math.acos(y/z);                 //返回角度值[0~π]   arc cos(y/z)  Math.atan(y/x);                 //返回角度值[-π/2,π/2]  Math.atan2(y-y0, x-x0);         //同上,返回经过点(x,y)与原点的的直线和经过点(x0,y0)与原点的直线之间所成的夹角  

Math.sinh(x);                   //双曲正弦函数sinh(x)=(exp(x) - exp(-x)) / 2.0;  Math.cosh(x);                   //双曲余弦函数cosh(x)=(exp(x) + exp(-x)) / 2.0;  Math.tanh(x);                   //tanh(x) = sinh(x) / cosh(x);  

//角度弧度互换  360°角=2π弧度Math.toDegrees(angrad);         //角度转换成弧度,返回:angrad * 180d / PI  

Math.toRadians(angdeg);         //弧度转换成角度,返回:angdeg / 180d * PI  

Math.PI
(0)

相关推荐