`
chaoyi
  • 浏览: 309916 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

运算符、表达式与语句

 
阅读更多

本章目标
掌握赋值运算符的使用
掌握算术运算符的使用
掌握关系运算符的使用
掌握递增与递减运算符的使用
掌握逻辑运算符的使用
掌握括号运算符的使用
掌握位运算符的使用
掌握各个运算符的优先级

 

运算符
Java中的语句有很多种形式,表达式就是其中一种形式。表达式是由操作数与运算符所组成:操作数可以是常量、变量也可以是方法,而运算符就是数学中的运算符号,如“+”、“-”、“*”、“/”、“%”等。以下面的表达式(z+100)为例,“z”与“100”都是操作数,而“+”就是运算符。


 

赋值运算符号



 

一元运算符

 
算术运算符

 

 

关系运算符

 
递增与递减运算符

 
逻辑运算符

 

AND及 OR结果表

 

 关于“&&”与“&”、“||”与“|”的说明
“&&”与“&”
——&&表示短路与
——对于“与”来说,要求所有的条件都判断,而如果使用“短路与”如果第一个条件为false,则后面的条件将不再判断。
“||”与“|”
——||表示短路或
——对于“或”来说,要求所有的条件都判断,而如果使用“短路或”如果第一个条件为true,则后面的条件将不再判断。

 

括号运算符

 

位运算符

 

位运算的结果表

 

位运算

public class OperatorDemo15 {
	public static void main(String[] args) {
		int x=3;//3的二进制数据: 00000000 00000000 00000000 00000011
		int y=6;//6的二进制数据: 00000000 00000000 00000000 00000110
		System.out.println(x&y);//与操作的结果: 00000000 00000000 00000000 00000010
		System.out.println(x|y);//或操作的结果: 00000000 00000000 00000000 00000111
		System.out.println(x^y);//与操作的结果: 00000000 00000000 00000000 00000101
	}
/*结果:
 * 3+5+4*6-7=25
 * (3+5+4)*(6-7)=-12
 * */
}

 

操作步骤

求出负数的反码

public class OperatorDemo16 {
	public static void main(String[] args) {
		int x=-3; //-3的二进制数据: 11111111 11111111 11111111 11111101
		System.out.println(x+"的反码是:"+~x);
	}
/*结果:
 * -3的反码是:2
 * */
}

 
 

 左移和右移
在Java中也提供了左移“<<”及右移“>>”两种操作。
左移操作是将运算数的二进制码整体左移指定位数,左移之后的空位使用0来填充
右移操作“>>”是将运算数的二进制码整体右移,右移之后空出来的位置以符号位填充。如果是整数使用“0”填充,如果是负数使用“1”填充。

 

左移操作

public class OperatorDemo17 {
	public static void main(String[] args) {
		int x=3;//3的二进制数据: 00000000 00000000 00000000 00000011
		System.out.println(x+"左移2位之后的内容:"+(x<<2));
	}
/*结果:
 * 3左移2位之后的内容:12
 * */
}

 

 

 右移操作

public class OperatorDemo18 {
	public static void main(String[] args) {
		int x=3;//3的二进制数据: 00000000 00000000 00000000 00000011
		int y=-3; //-3的二进制数据: 11111111 11111111 11111111 11111101
		System.out.println(x+"左移2位之后的内容:"+(x>>2));
		System.out.println(y+"左移2位之后的内容:"+(y>>2));
	}
/*结果:
 * 3左移2位之后的内容:0
 * -3左移2位之后的内容:-1
 * */
}

 

无符号右移
以上的右移操作属于带符号位的右移操作,在Java中也提供了无符号的右移操作符“>>>”,使用此操作将以“0”填充空出来的位。

 

无符号右移

public class OperatorDemo19 {
	public static void main(String[] args) {
		int x=3;//3的二进制数据: 00000000 00000000 00000000 00000011
		int y=-3; //-3的二进制数据: 11111111 11111111 11111111 11111101
		System.out.println(x+"左移2位之后的内容:"+(x>>>2));
		System.out.println(y+"左移2位之后的内容:"+(y>>>2));
	}
/*结果:
 * 3左移2位之后的内容:0
 * -3左移2位之后的内容:1073741823
 * */
}

 

 

运算符的优先级


 

 简洁的表达式

 

 

  • 大小: 15.6 KB
  • 大小: 78.9 KB
  • 大小: 8.1 KB
  • 大小: 4.8 KB
  • 大小: 8.5 KB
  • 大小: 11.9 KB
  • 大小: 60.8 KB
  • 大小: 23.2 KB
  • 大小: 6.6 KB
  • 大小: 8.5 KB
  • 大小: 11.9 KB
  • 大小: 16.8 KB
  • 大小: 16.2 KB
  • 大小: 33.9 KB
  • 大小: 7.4 KB
  • 大小: 7.4 KB
  • 大小: 32.6 KB
  • 大小: 20.9 KB
  • 大小: 42.6 KB
  • 大小: 23.3 KB
  • 大小: 24.8 KB
  • 大小: 11.1 KB
  • 大小: 9.4 KB
  • 大小: 40.3 KB
  • 大小: 24.8 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics