Java基础----常见运算符

常见的运算符

	|-- 算术运算符
	|-- 比较(关系)运算符
	|-- 逻辑运算符
	|-- 自加和自减运算符
	|-- 赋值运算符
	|-- 三目运算符
	|-- 位运算符

算术运算符:
+
-
*
/
%
Java基础----常见运算符_第1张图片
在这里插入图片描述

补充:常(恒)量
在程序运行时,不能修改它的值的量

在java中,声明常量使用的关键字

Java基础----常见运算符_第2张图片

比较(关系)运算符:
>
<
>=
<=
!=
==

结果是什么类型:boolean

Java基础----常见运算符_第3张图片
Java基础----常见运算符_第4张图片
逻辑运算符:
连接多个条件的关联关系的

与	&&	&	// 表示的是并且关系,全部为真则为真,否则为假
或	||	|	// 表示或者的关系,只要一者为真则为真,全部为假才为假
非	!		// 否定,取反

&& ||
短路与
短路或

效果更高,在编程建议使用短路与和短路或

Java基础----常见运算符_第5张图片
在这里插入图片描述

自加和自减运算符:
++a
a++
–a
a–

前加加和后加加的优先级别不同引起的!!!!!
前加加的优先级别非常高,仅次于括号
后加加的优先级别非常非常低,甚至比赋值符都低

赋值运算符:
= // 将等号右侧的值赋给左侧的变量
+= // a += 10 <===> a = a + 10
-=
*=
/=
%=

三目运算符:
表达式 ? 值1: 值2
int a = 10;
int b = 20;
int c = a > b ? 100 : 200;

位运算符:
计算机底层本质是二进制(半导体)运算

计算机底层使用的二进制运算


进制:
	人类最长的使用的10进制	
	10个个位数:
		0 1 2 3 4 5 6 7 8 9   逢10进1

	二进制:
		个位数只有2个:
			0   1

	八进制:	0561

	十六进制:0~9 ABCDEF	0xAF89AD

正数的源码、反码、补码一致,也就是正数没有源码、反码、补码之说

源码:数值的二进制状态码
反码:符号位不变,其余各位取反,得到的就是反码
补码:反码+1,就是补码

计算机底层本质上来说,是以补码运行的!!!!


&	// 与运算
|	// 或运算符
^	// 异或运算
~	// 按位取反
// 下面三个叫做移位运算
<<	左移运算符
>>	有符号右移运算
>>>	无符号右移运算


int a = 100;
a << 2

		

		
int a = 10;
int b = 11;

a & b;		// 都为真,则为真
a | b;		// 一者为真,则为真
a ^ b;		// 相反为真

0000 1010
0000 1011	&
---------------
0000 1010	10

0000 1010
0000 1011	|
-----------
0000 1011	11

0000 1010
0000 1011	^
---------
0000 0001	1	

基于正数的二进制运算
5

一个字节

byte a = 5

byte b = 10

0000 0101
0000 1010
a + b

0000 0101
0000 1010

0000 1111 15

无符号的时候:
1111 1111 255 最大值
0000 0000 0 最小值 0~255 256个值

引入负数
符号位的概念
最高位来表示数值的正负:0表示正数;1则表示该数是个负数

byte c = -1

byte d = 2

1000 0001
0000 0010

1000 0011 -3

正数的源码、反码、补码一致,也就是正数没有源码、反码、补码之说

源码:数值的二进制状态码
反码:符号位不变,其余各位取反,得到的就是反码
补码:反码+1,就是补码

计算机底层本质上来说,是以补码运行的!!!!

0000 0010 2

1000 0001 源码
1111 1110 反码
1111 1111 补码

0000 0010
1111 1111

1000000001

000000001

-3 + 1 = -2

0000 0001
1111 1101

1111 1110
1

1111 1101
1000 0010 -2

有符号的时候

0111 1111 +127
1000 0000 -128

-128~127	256个值

Java基础----常见运算符_第6张图片

在这里插入图片描述

你可能感兴趣的:(java)