java运算符01算术逻辑,位运算符java扩展运算符实例讲解

java运算符01算术逻辑,位运算符java扩展运算符实例讲解,运算符(operator)

n      Java 语言支持如下运算符:
q     算术运算符:  +,-,*,/,%,++,–
q     赋值运算符 =
q     关系运算符:  >,<,>=,<=,==,!=  instanceof
q     逻辑运算符:  &&,||,!
q     位运算符:  &,|,^,~ , >>,<<,>>> (了解!!!)
q     条件运算符 ?:
q     扩展赋值运算符:+=,-=,*=,/=

 

java二元运算符
整数运算:
如果两个操作数有一个为Long, 则结果也为long
没有long时,结果为int。即使操作数全为shot,byte,结果也是int.
浮点运算:
         如果两个操作数有一个为double, 则结果为double.
         只有两个操作数都是float, 则结果才为float.

 

java取模运算:
其操作数可以为浮点数,一般使用整数。如:5.9%3.9=2.000000004
要点:
  负数%负数=负数;
负数%正数=负数;
正数%负数=正数;

 

注:一般都是正整数运算,不用考虑这么细!

 

java一元运算符(++, –)
       int a = 3;
       int b = a++;   //执行完后,b=3。先给b赋值,再自增。
       int c= ++a;   //执行完后,c=5。先自增,再给b赋值

 

注意:java中的乘幂处理:
       int a = 3^2;    //java中不能这么处理, ^是异或符号。
       double b = Math.pow(3,2);
Math类提供了很多科学和工程计算需要的方法和常数。

 

布尔逻辑表达符
逻辑与:&&&,逻辑或:|||,逻辑非:!。
逻辑与和逻辑或采用短路的方式。从左到右计算,如果确定值则不会再计算下去。
逻辑与只要有一个为false, 则直接返回false.
逻辑或只要有一个为true, 则直接返回true;
boolean c = 1>2&&2>(3/0);
&&不会抛异常;说明没有执行3/0
位运算符:(了解)
         ~– 取反          &   – 按位与
         |  – 按位或  ^  – 按位异或
         <<:左移运算符,>>:右移运算符 >>>:无符号移位运算符

 

右移一位相当于除2取商。
左移一位相当于乘2
       int a = 3*2*2;
       int b =3<<2;  //相当于:3*2*2;
       int a = 12/2/2;
       int b = 12>>2;

扩展运算符

运算符
用法举例
等效的表达式
+=
    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
字符串连接符:

 

³     “+”运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接。

 

       int c = 12;
       System.out.println(“c=”+ c);

 

三目条件运算符

l       三目条件运算符,语法格式:
x ? y : z    经常用来代替简单的if-else判断!
l       其中 x 为 boolean 类型表达式,先计算 x 的值,若为true,则整个三目运算的结果为表达式 y 的值,否则整个运算结果为表达式 z 的值。
l       举例:
       intscore = 80; int x = -100;
       Stringtype = score< 60 ? “不及格” : “及格;
       int flag = x > 0 ? 1 : (x == 0 ? 0 :-1);
       System.out.println(“type=” + type);
       System.out.println(“flag=”+ flag);

java运算符优先级的问题


R to L
.   (  )   { }   ;    ,
++ –   ~ ! (data type)
L to R
* / %
L to R
+ -
L to R
<< >> >>>
L to R
<   >  <=  >=   instanceof
L to R
== !=
L to R
&
L to R
^
L to R
|
L to R
&&
L to R
||
R to L
? :
R to L
=    *=   /=   %=
+=    -=   <<=   >>=
>>>=   &=   ^=    |=

大家不需要去刻意的记住他,表达式里面优先使用小括号来组织!!课堂代码

  1. public class TestOperator {
  2.    public static void main(String[] args){
  3.    /*
  4.       double d = 10.2%3;
  5.       System.out.println(d);
  6.       int a = 3;
  7.       int b = a++;   //执行完后,b=3。先给b赋值,再自增。
  8.       int c = ++a;   //执行完后,c=5。先自增,再给b赋值
  9.       System.out.println(a);
  10.       System.out.println(b);
  11.       System.out.println(c);
  12.    */
  13.    // int  c = 3/0;
  14.    /*
  15.       boolean c =  1<2&&2>(3/0);
  16.       System.out.println(c);
  17.    */
  18.    /*
  19.       //测试位运算
  20.       int m = 8;
  21.       int n = 4;
  22.       System.out.println(m&n);
  23.       System.out.println(m|n);
  24.       System.out.println(~m);
  25.       System.out.println(m^n);
  26.         int a = 3*2*2;
  27.       int b =  3<<3;  //相当于:3*2*2;
  28.       int c = 12/2/2;
  29.       int d = 12>>2;
  30.       System.out.println(a);
  31.       System.out.println(b);
  32.       System.out.println(c);
  33.       System.out.println(d);
  34.       boolean b1 = true&false;
  35.       System.out.println(b1);
  36.    */
  37.    /*
  38.       //扩展运算符
  39.       int  a = 3;
  40.       a +=5;  //a = a+5;
  41.    */
  42.    /*
  43.       //字符串相连:加号两边只要有一个为字符串,则变为字符串连接符,整个结果为字符串。
  44.       System.out.println(4+”5″);
  45.    */
  46.       int a=3;
  47.       int b=5;
  48.       String str= “”;
  49.       /*
  50.       if(a<b){
  51.          str =  ”a<b”;
  52.       }else{
  53.          str =  ”a>b”;
  54.       }
  55.       */
  56.       str = (a<b)?”a<b”:”a>=b”;
  57.       System.out.println(str);
  58.    }
  59. }
本文链接地址: java运算符01算术逻辑,位运算符java扩展运算符实例讲解