9.Java算术优先级及左移,右移

1.Java运算符优先级:(从左往右优先级越小)

[ ]        ( )    ++      --        !      ~      instanceof      *      /      %      +        -        <<      >>          >>>        <      >      < =      > =      ==      !=      &    ^      &&      ||        ? :          op=

2.左移:(<<) 操作数乘以2的n次方 ,不够就是补0

System.out.println(6<<2);  //6 x 2 x2 = 24

3.右移:(>>)  操作数除以2的n次方 ,(这里注意点:如果是负数的话就是补1,正数补0)

System.out.println(6>>2); 6 /(2*2) = 1

4.无符号右移 :(都是补0的操作)

5.左移,右移的应用:

1.需求:交换两个数字的大小,不能使用三方变量来实现改功能

    //方式一: 相加法  

    //方式二: 异或法

//方式一:相加法,确定是不能超过Int的存储的范围

int  a = 5;

int b = 3;

a = a + b;//a = 5+3 = 8

b = a - b;//b = 8-3 = 5

a = a - b;//a = 8-5 = 3

//方式二:异或法

int  a = 5;

int  b = 3;

a = a^b;//a = 5^3

b = a^b;//b = 5^3^3 = 5

a = a^b;//a = 5^3^5 = 3

2.需求:求一个数的低四位的值 (使用与&) 

你可能感兴趣的:(9.Java算术优先级及左移,右移)