运算符

来源:互联网 发布:fluke网络测试仪报价 编辑:程序博客网 时间:2024/05/22 16:00

运算符优先级

优先级

 

运算符

1

 

.   []   ()

2

 

++   --   ~   !   (数据类型)

3

 

*  /  %

4

 

+   -

5

 

<<   >>   >>>

6

 

<   >   <=   >==

7

 

==   !=

8

 

&

9

 

^

10

 

|

11

 

&&

12

 

||

13

 

?:

14

 

=   *=   /=   &=   +=   -=   <<=   >>==   >>>=   &=   ^=   |=

算术运算符:

称作四则运算,Java中的算术运算符就是用来处理四则运算的符号 。

操作符

描述

例子

+         

加法 - 相加运算符两侧的值         

A + B 等于 30

-         

减法 - 左操作数减去右操作数         

A – B 等于 -10

*         

乘法 - 相乘操作符两侧的值         

A * B等于200

/         

除法 - 左操作数除以右操作数         

B / A等于2

%         

取模 - 左操作数除以右操作数的余数         

B%A等于0

++         

自增: 操作数的值增加1         

自增前:

范例:a=2; b=++a;

结果:a=3,b=3

先进行自增再进行其它运算

自增后:

范例:a=2; b=a++;

结果:a=3,b=2

先进行其它运算再进行自增

B++ 或 ++B 等于 21

--         

自减: 操作数的值减少1         

自减前:

范例:a=2; b=--a;

结果:a=1,b=1

先进行自减再进行其它运算

自减后:

范例:a=2; b=a--;

结果:a=1,b=2

先进行其它运算再进行自减

B-- 或 --B 等于 19

赋值运算符:

赋值运算符的作用就是将常量、变量或表达式的值赋给某一个变量。

操作符         

描述         

例子

=         

简单的赋值运算符,将右操作数的值赋给左侧操作数         

C = A + B将把A + B得到的值赋给C

+ =         

加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数         

C + = A等价于C = C + A

- =         

减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数         

C - = A等价于C = C - A

* =         

乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数         

C * = A等价于C = C * A

/ =         

除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数         

C / = A等价于C = C / A

(%)=         

取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数         

C%= A等价于C = C%A

比较运算符:

比较运算用于对两个数值或变量进行比较。其结果是一个布尔值。

操作符         

描述         

例子

==         

检查如果两个操作数的值是否相等,如果相等则条件为真。         

(A == B)为假(非真)。

!=         

检查如果两个操作数的值是否相等,如果值不相等则条件为真。         

(A != B) 为真。

>          

检查左操作数的值是否大于右操作数的值,如果是那么条件为真。         

(A> B)非真。

<          

检查左操作数的值是否小于右操作数的值,如果是那么条件为真。         

(A <B)为真。

> =         

检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。         

(A> = B)为假。

<=         

检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。         

(A <= B)为真。

逻辑运算符:

逻辑运算符用于对布尔型的数据进行操作。其结果是布尔型数据。

操作符         

运算

范围

结果

描述

&

true & true

true & false

false& false

false& true

true

false

false

false

两边都为true

结果为true,否则为false

|

true | true

true | false

false| false

false| true

true

true

false

true

有一边为true

结果为true

只有两边为false,结果为false

^

异或

true ^ true

true ^ false

false^ false

false^ true

false

true

false

true

两边相同时

结果为false,否则为true

!

! true

! false

false

true

非true即false

非false即true

&&

短路与

true && true

true && false

false&& false

false&& true

true

false

false

false

和&不同点:

左边为false时,右边不会进行运算

||

短路或

true || true

true || false

false|| false

false|| true

true

true

false

true

和|不同点:

左边为true时,右边不会进行运算

位运算符:

位运算符是针对二进制数的每一位进行运算的符号,它是专门针对数字0和1进行操作的。

运算符

运算

范例

结果

描述

&

按位与

0 & 0

0 & 1

1 & 1

1 & 0

0

0

1

0

如果两个二进制位都为1,则该位的结果为1,否则为0。

|

按位或

0 | 0

0 | 1

1 | 1

1 | 0

0

1

1

1

如果二进制位上有一个值为1,则该位的结果为1,否则为0

~

取反

~ 0

~ 1

1

0

只针对一个操作数进行操作,如果二进制位是0,则取反值为1

如果是1,则取反值为0

^

按位异或

0 ^ 0

0 ^ 1

1 ^ 1

1 ^ 0

0

1

0

1

是将参与运算的两个二进制数进行“异或”运算,如果二进制位相同 ,

则值为0,否则为1

<<

左移

00000010 << 2

10010011 << 2

00001000

01001100

将操作数所有二进制位向左移动一位。运算时,

右边的空位补0,左边移走的部分舍去。

>>

右移

01100010 >> 2

11100010 >> 2

00011000

11111000

将操作数所有二进制位向右移动一位。运算时,

左边的空位根据原数的符号位补0或者1(原来是负数就补1,是正数就补0.

>>>

无符号右移

01100010 >>> 2

11…11100010 >>> 2

00011000

0011…111000

将操作数所有二进制位向右移动一位。

运算时,左边的空位补0(不考虑原数正负)