逻辑运算符与位运算符

逻辑运算符

1.运算符“!”
用于对逻辑值的取反运算。当逻辑值为true时,经过取反变为false;当逻辑值为false时取反成true。
2.运算符^
运算符”^“用于对逻辑值进行异或运算。当运算两侧同时为true或false时,运算结果为false,否则为true。
3.运算符”&&“和“&”
运算符”&&“和“&”均用于逻辑与运算。当两侧同时为true时,运算结果为true,其他情况均为false。
运算符”&&“为简介与运算符,运算符“&”为非简洁与运算符,她们的区别如下
1)运算符”&&“只有在其左侧为true时,才运算其右侧的逻辑表达式,否则直接返回运算结果false。
2)运算符“&”无论其左侧为false还是true,都会运行其右侧的逻辑表达式,最后才返回运算结果。

int x=7,y=5;
System.out.println((x<y)&&(x++==y--));          //输出结果为false
System.out.println("x="+x);            					//输出x的值为7
System.out.println("y="+y);								//输出y的值为5
int x=7,y=5;
System.out.println((x<y)&(x++==y--));          //输出结果为false
System.out.println("x="+x);            					//输出x的值为8
System.out.println("y="+y);								//输出y的值为4

4.运算符“ | | ”与“ | ”
运算符“ | | ”与“ | ”均用于逻辑与运算。当两侧同时为false时,运算结果为true,其他情况均为false。
运算符“ | | ”为简介与运算符,运算符“ | ”为非简洁与运算符,她们的区别如下
1)运算符“ | | ”只有在其左侧为false时,才运算其右侧的逻辑表达式,否则直接返回运算结果true。
2)运算符“ | ”无论其左侧为false还是true,都会运行其右侧的逻辑表达式,最后才返回运算结果

int x=7,y=5;
System.out.println((x>y)||(x++==y--)); 				    //输出结果为true
System.out.println("x="+x);            					//输出x的值为7
System.out.println("y="+y);								//输出y的值为5
int x=7,y=5;
System.out.println((x>y)|(x++==y--));         		    //输出结果为true
System.out.println("x="+x);            					//输出x的值为8
System.out.println("y="+y);								//输出y的值为4

位运算符

位运算时对操作数以二进制为单位进行的操作与运算,运算结果均为整数性。位运算符又分为逻辑位运算符和位移运算符。
1.逻辑位运算符
逻辑位运算符有 “~(按位取反)”、“&(按位与)”、“|(按位与)”“^(按位异或)”
逻辑位运算符的运算规则

操作数x 操作数y ~x x&y x(按位与) y x^y
0 0 1 0 0 0
0 1 1 0 1 1
1 0 0 0 1 1
1 1 0 1 1 0

具体代码:

public class Example{
	public static void main(String[] args){
		int a=5&4;				//运算结果为4
		int b=3|6;				//运算结果为7
		int c=10^3;				//运算结果为9
		int d=~(-14);			//运算结果为13
	}
}

2.移位运算符
移位运算符有“<<(左移,低位添0补齐)”,“>>(右移,高位添符号位)”和“>>>(右移,高位添0补齐)”,用来对操作数进行位移运算

public class Example{
	public static void main(String[] args){
		int a=-2<<3;			//运算结果为4
		int b=15>>2;			//运算结果为7
		int c=4>>>2;			//运算结果为9
		int d=-5>>>1;			//运算结果为13
	}
}

三元运算符“? : ”

应用形式如下:
逻辑表达式?表达式1:表达式2
**规则为:**若逻辑表达式的值为true,则整个表达式的值为表达式1的值,否则为表达式2的值
注:不管逻辑表达式的值为如何,都只会运行一个表达式

int x=7,y=5;
System.out.println(x>y?x++:y++); 				    //输出结果为7
System.out.println("x="+x);            					//输出x的值为8
System.out.println("y="+y);								//输出y的值为5

猜你喜欢

转载自blog.csdn.net/y75xwr/article/details/88256321
今日推荐