Java基础篇 --- 运算符

Java的运算符分为:

算术运算符、位运算符、赋值运算符、关系运算符、逻辑运算符、三目运算符、类型相关运算符。

算数运算符

+ 、 - 、*、/、%、++、-- 加 减 乘 除 取余

主要是基本的加减乘除四则计算

int v = 7;
int k = 2;
Systme.out.print(v + k); // 结果为 7+2=9
Systme.out.print(v - k); // 结果为 7-2=5
Systme.out.print(v * k); // 结果为 7 × 2=14
Systme.out.print(v / k); // 结果为 7÷2=3 , 结果只会取整数部分为值。
Systme.out.print(v % k); // 结果为 7 % 2=1 ,结果只会取余数部分为值。
Systme.out.print( k++ ); // 结果为 2+1=3  
Systme.out.print( k-- ); // 结果为 2-1=1  

位运算符

&、 |、 ~、^、<< 、>>、<<<

与 或 取反 异或 左移位 右移位 无符号右移

& 与运算 二进制数字上进行计算,都为1结果为1,其他情况都为0.

5的二进制值为:00000101
9的二进制值为:00001001

System.out.print(21 & 17); //结果为17 
// 21 :  00010101
//17:    00010001
//结果: 00010001 为17.

**计算是按位逐一计算,只有都为1时,值为1,否则为0 **
在这里插入图片描述

| 或运算符 二进制数字上进行计算的 都是0为0 其他都为1,跟上面正好相反。

5: 0000 0101
9: 0000 1001
13: 0000 1101
在这里插入图片描述

~ 取反运算 1为0 0为1 正好相反

5: 0000 0101
-6:1111 1010
在这里插入图片描述

^ 异或运算 同0为0 不用为1

5: 0000 0101
9: 0000 1001
13:0000 1101
在这里插入图片描述

<<左移位运算,将二进制向左边的二进制位溢出,空位在右侧,用0补齐。

正整数向左侧移1位,相当于乘以1次2,左移运算有可能改变运算数的正负

5<<2
5 : 0000 0101
<<2 : 0001 0100
结果为: 20
在这里插入图片描述

>> 右移位运算符 将二进制位向右进行移动,最右侧的二进制位溢出(舍去),空位在最左侧,用符号位补齐。

正整数向右移位1位,就相当于除以1次2,右移运算不会改变运算数的符号

5>>2
5: 0000 0101
>>2: 0001 0100 结果为20
在这里插入图片描述

>>>无符号右移运算符 将二进制位向右进行移动,最右边的二进制位溢出(舍弃),空位在左侧,统一使用0补齐。

无符号右移得到的结果一定是正数

5: 0000 0101
>>> 1 : 0000 0010
-5 : 1111 1011
>>> 1:0111 1101
在这里插入图片描述

赋值运算符

传统的赋值运算符只用一个: =
i1 += 5 ;在 i1 这个变量原值的基础上加上一个5,并将运算结果重新赋值回i1
+= : 赋值运算符的扩展
+= 、 -= 、*= 、 %= 、 &= 、|= 、^= 、>>= 、<<= 、>>>=
赋值运算符扩展的规则:
1.被扩展的运算符必须是双目运算符
2.被扩展的运算符运算结果必须是数字

关系运算符

用来表示两个数字类型 算数的大小,等于等关系
< 、<= 、==、 !=、 >= >

逻辑运算符

& : 同真为真, 一假全假
| :有真为真,全假为假
! : 真假交换
&& : 短路与: 如果参与运算的两个条件中,第一个条件是假的,后序判断条件不执行
|| : 短路或: 如果参与或运算的两个条件中, 第一个条件就是真,后续判断条件不执行

三目运算符

运算符的目数:就是参与当前运算的运算个数
单目运算符: ++ – ~!
双目运算符: + _ * / % >> << >>> & && | || != < <= > >=
三目运算符: ? :
实现最简单的条件分支:根据一个条件是否达成,判断返回哪一个具体的值
使用公式: 条件成立吗 ?成立返回这个 : 不成立返回这个

df

注意: 三目运算符长得想表达式,但是这个东西本质上还是运算符,只要是运算符就需要一个结果变量接受其运行结果

运算符的结合性

结合性: 一个运算符从那边向那边进行运算
大部分的运算符都是从左向右结合的
Java中从右向左进行结合的运算符:赋值运算符,单目运算符,三目运算符

猜你喜欢

转载自blog.csdn.net/liguangix/article/details/86475713
今日推荐