您的位置:首页 > 编程语言 > Java开发

java的运算符

2016-05-27 16:49 423 查看
一、算数运算符

运算符
运算
示例
结果
+
正号
+3
3
-
负号
b=3;-b;
-3
+

4+4
8
-

6-3
3
*

3*5
15
/

6/2
3
%
取模
5%5
0
++
自增(前)
a=2;b=++a;
a=3;b=3;
++
自增(后)
a=2;b=a++;
a=3;b=2;
--
自减(前)
a=2;b=--a;
a=1;b=1;
--
自减(后)
a=2;b=a--;
a=1;b=2;
+
字符串相加
"he"+"llo";
"hello";
 
二、赋值运算符
=,+=,-+,*=,/=,%=
例:

int a,b,c; a=b=c=3;
int a=3; a+=5;等同运算a=a+5;
思考:
short s =3; s=s+2;与s+=2;有什么不同?
s=s+2;是2次运算,先将s隐士转换成int类型,然后再进行加法运算。在将int类型计算结果赋给short类型s;所以编译会报错!
s+=2;是一次运算,结果是5;
 
三、比较运算符

运算符
运算
范例
结果
==
相等于
4==3
false
!=
不等于
4!=3
true
<
小于
4<3
false
>
大于
4>3
true
<=
小于等于
4<=3
false
>=

大于等于
4>=3
False
instanceof
检查是否是类的对象
"Hello" instanceof String
true
 
四、逻辑运算符

运算符
运算
示例
结果
扩展
&
AND(与)
false&true
false
true&ture=true;
true&false=false;
false&true=false;
false&false=false;
总结:只有两边都为ture,结果为true否则都为false;
|
OR(或)
false|true
true
true|ture=true;
true|false=true;
false|true=true;
false|false=false;
总结:两边只要有一个true结果就是ture,当两边结果都为false时,结果为false;
^
XOR(异或)
true^false
true
true^ture=false;
true^false=true;
false^true=true;
false^false=false;
总结:当两边相同时,结果为false,否则为true;
!
Not(非)
!true
false
 
&&
AND(短路)
false&&true
false
false&&true;当左边为假时右边不运算;单&时,左右两边都运算,双&&时,左边为false时,右边不运算;
||
OR(短路)
false||true
true
true||fasle;当左边为true时,右边不运算;单|时,左右两边都运算,双||时,左边为ture时,右边不运算;
 
五、位运算
1)6^3
结果是5
实现思路:
1.先将十进制数转换成二进制;

6对应的二进制110(int类型是4个8位,为了书写简单,只写了对应的值,实际位数不够要用0补位;如正常应该书写为:00000000000000000000000000000110);

3对应的二进制是011;
2.使用二进制进行位运算(0是false、1是true):

110

    ^011

    ------

     101
3.将得到的二进制数转换成十进制
101对应的十进制数为5,所以6^3得到的数是5;
2)8|3

 1000

| 011

--------

 1011
1011对应的十进制数为11,所以8|3得懂啊的数是11;
3)负数的二进制:对负数的二进制表现形式对应整数进行取反,再+1。
例如:
 
正数6的完整二进制:

00000000 00000000 00000000 00000110
 获取-6:
11111111 11111111 11111111 11111001  ----整数6的反码
         + 00000000 00000000 00000000 00000001
  -------------------------------------------------------------

11111111 11111111 11111111 11111010  =-6
 
六、位移运算符
<<:左移
>>:右移
>>>:无符号右移
位移运算对于数值运算是最快的。
例:3<<2=?  3>>1=?
注:&|^也是位运算符。例:6^3
技巧:二进制1就是true,0就是false。
 
3<<2=12
实现思路:
3的二进制:11
左移2位:1100

1100对应的10进制数:12
总结:
其实就是3乘以2的2次方。
3>>1=1
实现思路:
3的二进制:11
右移1位:01
01对应的十进制数:1
 
练习:
获取一个整数的二进制位数中最低4位。

00000000 00000000 00000000 00101110
00000000 00000000 00000000 00000010
下一个4进制位
         &00000000 00000000 0000000000001111 =15
------------------------------------------------------------------

00000000 00000000 00000000 00001110 =E

00000000 00000000 00000000 00000010=2

 
所以00000000 00000000 00000000 00101110对应的十六进制是2E
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: