java的运算符
2016-05-27 16:49
423 查看
一、算数运算符
二、赋值运算符
=,+=,-+,*=,/=,%=
例:
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;
三、比较运算符
四、逻辑运算符
五、位运算
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
运算符 | 运算 | 示例 | 结果 |
+ | 正号 | +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
相关文章推荐
- Java集合个人总结
- java的变量
- java.sql.Date 和 java.util.Date的区别
- JAVA中的常量
- java实现基于PKCS7Padding填充方式的AES加解密
- java中接口的定义与实现
- Java基础-transient关键字
- Java环境搭建
- java.四舍五入
- Eclipse调试Java的10个技巧
- Java获取PostgreSQL数据库中文数据乱码问题
- Meclipse快捷键
- java初始化顺序
- JNative:JAVA调用DLL
- Java基础知识:面向对象-基本概念
- java遍历map集合中的元素的方法。
- Spring.Net Ⅰ.pp---浅尝
- 如何编写一个自己的校验框架
- 桶排序与基数排序代码(JAVA)
- Java执行CMD命令并等待返回结果