java入门学习笔记(三)—— 运算符与表达式、关系运算符、逻辑运算符、位运算符、其他运算符、运算符的优先级

一、关系运算符

简单的关系运算符,不需要多解释,直接上代码练习一下就OK了。

1、代码

float e=0;
		a=3;
		b=4;
		c=5;
		d=0;
		System.out.println("\n\na="+a+",b="+b+",c="+c+",d="+d+",e="+e);
		System.out.println("a>0:"+(a>0));
		System.out.println("b<c:"+(b<c));
		System.out.println("d<=0:"+(d<=0));
		System.out.println("b*b-4*a*c>=0:"+(b*b-4*a*c>=0));
		System.out.println("a!=b:"+(a!=b));
		System.out.println("d==e:"+(d==e));

在这里插入图片描述

2、运行结果

在这里插入图片描述

二、逻辑运算符

也没啥好说的,就三个,
&&
||

来个小练习,一笔带过。

1、代码

		int year=2022;
		if( (year%4==0 && year%100!=0) || (year%400==0) || (year%3200==0 && year%172800==0))
			System.out.println("闰年");
		else
			System.out.println("非闰年");

2、运行结果

在这里插入图片描述

三、位运算符

终于,来了点像样的东西。

1、原码、反码与补码

(1)原码

数值前,加上符号位,0表示正,1表示负。

(2)反码

正数的反码,与原码相同。
负数的反码,是对其原码诸位取反,但符号位除外。

(3)补码

在计算机中,数值一律用补码表示。
原因在于,使用补码可以将符号位和数值位统一处理。
同时,加法与减法也可以统一处理。
此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。

正整数的补码与原码相同。
负整数的补码是其反码加1.

2、位运算符

常用的(熟悉的):
~ & | ^
不常用的(有点陌生的):
<<
>>
>>>

(1)>>n

右移n为,最左边补符号位,就是除以2的n次方的意思。

(2)<<n

左移n位,最右边补0,就是乘以2的n次方的意思。

(3)>>>n

无符号右移n,忽略符号位,空位都以0补齐。

3、示例

代码

		b=-13;
		System.out.println("\n\n"+a+"的原码:0000 0110");
		System.out.println(""+a+"的反码:0000 0110");
		System.out.println(""+a+"的补码:0000 0110");
		
		System.out.println("\n\n"+b+"的原码:1000 1101");
		// 负数反码是其除了符号位以外的相反数
		System.out.println(""+b+"的反码:1111 0010");
		// 负数的补码是其反码加1
		System.out.println(""+b+"的补码:1111 0011");
		// 右移运算符,在最左边补符号位。
		System.out.println(""+b+">>2的补码:1111 1100(11)");
		System.out.println(""+a+"的补码:0000 0110");
		System.out.println(""+a+">>2的补码:0000 0001(10)");
		// 左移运算符,在最右边补0.
		System.out.println(""+a+"<<2的补码:0001 1000");
		System.out.println(""+b+"的补码:1111 0011");
		System.out.println(""+b+"<<2的补码:1100 1100");
		System.out.println(""+b+"<<2的反码:1100 1011");
		System.out.println(""+b+"<<2的原码:1011 0100");

运行结果

在这里插入图片描述

四、其他运算符

new、创建对象或者为数组分配空间
instanceof、判断对象是否是类的实例

实例

		Integer aa=3;
		if(aa instanceof Integer)
			System.out.println(aa+"是整数");
		else
			System.out.println(aa+"不是整数");

五、运算符的优先级

1、从左到右

.
()
[]

2、从右到左

+
-
++
- -
~
!

3、从左到右

*
/
%

4、从左到右

+
-

5、从左到右

<<
>>
>>>

6、从左到右

<
<=
>
>=
instanceof

7、从左到右(以下8-12都是)

==
!=

8、&

9、|

10、^

11、&&

12、||

13、?:(从右到左)

14、=(从右到左)

15、混合赋值运算符(从右到左)

*=
/=
%=

+=
-=

<<=
>>=
>>>=

&=

|=

^=

猜你喜欢

转载自blog.csdn.net/qq_41563270/article/details/108703439