运算符(二)

一、位运算符

1.按位与运算符(&)

两个操作数中位都为1,结果才是1;否则结果为0。``

package work;

public class Demo1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int a=20;int b=13;
		System.out.println("a&b的运算结果是:"+(a&b))//20的二进制:0010 0100;13的二进制:0000 0101;
		//根据&运算符的运算法则,只有两个位都是1,结果才是1,因此结果是0000 0100;即4.
![在这里插入代码片](https://img-blog.csdnimg.cn/2019110109524795.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzI4MjU4,size_16,color_FFFFFF,t_70)

2.按位或运算符(|)

两个只要有一位是1,其结果就是1;否则就为0。

package work;

public class Demo1 {

	public static void main(String[] args) {
	int a=20;int b=13;
		System.err.println("a|b的运算结果是:"+(a|b));
		}
		}
		//两个位只要有一个为1,那么结果就是1,否则就为0.因此结果为0010 1101,即29

3.## 按位非运算符(~)

如果位为0,结果就是1,如果位是1,结果就是0。

package work;

public class Demo1 {

	public static void main(String[] args) {
	int a=20;int b=13;
	System.out.println("~a的运算结果是:"+(~a));
	
	}
	}
	//其结果就是-21.

4.按位与或(^)

两个操作数位中,相同结果为0,不同结果则为1。

package work;

public class Demo1 {

	public static void main(String[] args) {
		int a=20;int b=13;
	System.out.println("a^b的运算结果是:"+(a^b));
	}
	}
		//结果为0001 1001,即25.

5.左移(<<)、右移(>>)、无符号右移(>>>)运算符

(1)左移运算符。将运算符左边的对象,按右边指定的位数向左移动运算符,并且在低位补零。(向左移,就相当于乘以2的n次方)

package work;

public class Demo1 {

	public static void main(String[] args) {
	int x=2;
		int y=3;
		System.out.println("a<<b的运算结果是:"+(x<<y));
		//2的进制数是0000 0010,其左移3位是0001 0000;即16.其实就是2乘以2的3次方。
		}
		}

(2)右移运算符。将运算符左边的运算对象按右边指定的位数向右移动运算符。如果是正数,则在高位补0;如果是负数,则在高位补1.

package work;

public class Demo1 {

	public static void main(String[] args) {
	int m=16;
		int n=-16;
		int p=2;
		int q=2;
		//m的二进制是00001 0000,其向右移两位后变成0000 0100,即4;n的二进制是1110 1111,,
		//其向右移两位后变成1111 1011,即-4;
		System.out.println("m的位移结果是:"+(m>>p));
		System.out.println("n的位移结果是:"+(n>>q));
		}
		}

(3)无符号右移运算符。将运算符左边的对象按右边指定的位数向右移动运算符,并且在高位补0,。其实右移n位,就相当于除以2的n次方。

package work;

public class Demo1 {

	public static void main(String[] args) {
	int m=16;
	int q=2;
	System.out.println("m>>>q的运算结果是:"+(m>>>q));
}
}

在这里插入图片描述

二、字符串运算符

1.运算符“+”可以实现两个或多个字符串的连接,也可以实现字符串与其他类对象的连接。
2.运算符“+=”把两个字符串连接的结果放进第一个字符串里

package work;

public class Demo1 {

	public static void main(String[] args) {
	String t="你是";
		String s="我的";
		String s1;
		String s2;
		String s3;
		System.out.println(s1=t+s);
		System.out.println(s2=3+2+s1);
		System.out.println(s3=s1+3+2);
		}
		}
		//其s1输出的结果是:你是我的;
       // s2的输出结果是:5你是我的;
       // s3输出的结果是:你是我的32;
}
}

三、条件(三目)运算符

条件运算符又称“三目”运算符,其结构为boolean表达式?表达式1:表达式2
条件运算符的规则如下:
(1)先计算boolean表达式;
(2)如果boolean表达式的值是true,则整个表达式表达式的值为表达式2的值。

package work;

public class Demo1 {

	public static void main(String[] args) {
	int flag=a>b?1:-1;	
		System.out.println(flag);//fiag的值就是1.
			}

}

	

五、运算符优先级

相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页