运算符、表达式与语句

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

 

运算符
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
 * */
}

 

 

运算符的优先级


 

 简洁的表达式

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值