JAVA运算符
2022/4/14 1:12:49
本文主要是介绍JAVA运算符,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
JAVA运算符
目录- JAVA运算符
- 加减乘除的简写运算符
- 自增自减
- 移位运算
- 位运算
- 布尔运算
- 短路运算
- 三元运算符
加减乘除的简写运算符
n+=100;//相当于n=n+100 n-=100;//相当于n=n-100 n*=100;//相当于n=n*100 相除只能得到整数部分,取余使用% n/=100;//相当于n=n/100
自增自减
对整数进行加1和减1操作
public class Main { public static void main(String[] args) { int n = 3300; n++; // 3301, 相当于 n = n + 1; n--; // 3300, 相当于 n = n - 1; int y = 100 + (++n); //++写在前面和后面是不一样的,++n表示先加1再引用n,反之。 System.out.println(y);// 输出y=3401 } }
移位运算
- 左移:
int n = 7; // 00000000 00000000 00000000 00000111 = 7 int a = n << 1; // 00000000 00000000 00000000 00001110 = 14 int b = n << 2; // 00000000 00000000 00000000 00011100 = 28 int c = n << 28; // 01110000 00000000 00000000 00000000 = 1879048192 int d = n << 29; // 11100000 00000000 00000000 00000000 = -536870912
左移29位时,由于最高位变成1
,因此结果变成了负数。
- 右移
int n = 7; // 00000000 00000000 00000000 00000111 = 7 int a = n >> 1; // 00000000 00000000 00000000 00000011 = 3 int b = n >> 2; // 00000000 00000000 00000000 00000001 = 1 int c = n >> 3; // 00000000 00000000 00000000 00000000 = 0
如果对一个负数进行右移,最高位的1
不动,结果仍然是一个负数
- 还有一种无符号的右移运算,使用
>>>
,它的特点是不管符号位,右移后高位总是补0
,因此,对一个负数进行>>>
右移,它会变成正数,原因是最高位的1
变成了0
:
int n = -536870912; int a = n >>> 1; // 01110000 00000000 00000000 00000000 = 1879048192 int b = n >>> 2; // 00111000 00000000 00000000 00000000 = 939524096 int c = n >>> 29; // 00000000 00000000 00000000 00000111 = 7 int d = n >>> 31; // 00000000 00000000 00000000 00000001 = 1
- 对
byte
和short
类型进行移位时,会首先转换为int
再进行位移。
其实左移实际上就是不断地×2,右移实际上就是不断地÷2。
位运算
与&
,或|
,非~
,异或^
异或运算的规则是,如果两个数不同,结果为1
,否则为0
布尔运算
-
比较运算符:
>
,>=
,<
,<=
,==
,!=
-
与运算
&&
-
或运算
||
-
非运算
!
短路运算
- 因为
false && x
的结果总是false
,无论x
是true
还是false
,因此,与运算在确定第一个值为false
后,不再继续计算,而是直接返回false
。 - 对于
||
运算,只要能确定第一个值为true
,后续计算也不再进行,而是直接返回true
。
- 因为
三元运算符
public class Main { public static void main(String[] args) { int n = -100; int x = n >= 0 ? n : -n;//判断n>=0是否成立,true返回n,否则返回-n。 System.out.println(x); } }
三元运算b ? x : y
会首先计算b
,如果b
为true
,则只计算x
,否则,只计算y
。此外,x
和y
的类型必须相同,因为返回值不是boolean
,而是x
和y
之一。
这篇关于JAVA运算符的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)
- 2024-05-30【Java】百万数据excel导出功能如何实现
- 2024-05-30我们小公司,哪像华为一样,用得上IPD(集成产品开发)?