【05】Java 运算符
📔 千寻简笔记介绍
千寻简笔记已开源,Gitee与GitHub搜索chihiro-notes
,包含笔记源文件.md
,以及PDF版本方便阅读,且是用了精美主题,阅读体验更佳,如果文章对你有帮助请帮我点一个Star
~
更新:支持在线阅读文章,根据发布日期分类。
文章目录
简介
本文关键词
对应的代码实例
、算术运算符
、关系运算符
、逻辑运算符
、赋值运算符
、位运算符
、条件运算符(三元运算符)
、自增和自减运算符
、位运算过程
1 运算符
Java中常见的运算符包括:
1.1算术运算符:
加法运算符(+)
-
加法运算符(+):对两个操作数执行加法运算。
int a = 5; int b = 3; int sum = a + b; // 将a和b相加,并将结果赋值给sum变量 System.out.println("加法运算结果:" + sum); // 加法运算结果:8
减法运算符(-)
-
减法运算符(-):对两个操作数执行减法运算。
int a = 5; int b = 3; int difference = a - b; // 将a和b相减,并将结果赋值给difference变量 System.out.println("减法运算结果:" + difference); // 减法运算结果:2
乘法运算符(*)
-
乘法运算符(*):对两个操作数执行乘法运算。
int a = 5; int b = 3; int product = a * b; // 将a和b相乘,并将结果赋值给product变量 System.out.println("乘法运算结果:" + product); // 乘法运算结果:15
除法运算符(/)
-
除法运算符(/):对两个操作数执行除法运算。
int a = 5; int b = 3; int quotient = a / b; // 将a除以b,并取整数商,将结果赋值给quotient变量 System.out.println("除法运算结果:" + quotient); // 除法运算结果:1
取模运算符(%)
-
取模运算符(%):计算两个操作数相除的余数。
int a = 5; int b = 3; int remainder = a % b; // 计算a除以b的余数,并将结果赋值给remainder变量 System.out.println("取模运算结果:" + remainder); // 取模运算结果:2
1.2 关系运算符:
相等运算符(==)
-
相等运算符(==):判断两个操作数是否相等。
int a = 5; int b = 3; boolean isEqual = (a == b); // 判断a和b是否相等,并将结果赋值给isEqual变量 System.out.println("相等运算结果:" + isEqual); // 相等运算结果:false
不等运算符(!=
-
不等运算符(!=):判断两个操作数是否不相等。
int a = 5; int b = 3; boolean isNotEqual = (a != b); // 判断a和b是否不相等,并将结果赋值给isNotEqual变量 System.out.println("不等运算结果:" + isNotEqual); // 不等运算结果:true
大于运算符(>)
-
大于运算符(>):判断左操作数是否大于右操作数。
int a = 5; int b = 3; boolean isGreater = (a > b); // 判断a是否大于b,并将结果赋值给isGreater变量 System.out.println("大于运算结果:" + isGreater); // 大于运算结果:true
小于运算符(<)
-
小于运算符(<):判断左操作数是否小于右操作数。
int a = 5; int b = 3; boolean isLess = (a < b); // 判断a是否小于b,并将结果赋值给isLess变量 System.out.println("小于运算结果:" + isLess); // 小于运算结果:false
大于等于运算符(>=)
-
大于等于运算符(>=):判断左操作数是否大于等于右操作数。
int a = 5; int b = 3; boolean isGreaterOrEqual = (a >= b); // 判断a是否大于等于b,并将结果赋值给isGreaterOrEqual变量 System.out.println("大于等于运算结果:" + isGreaterOrEqual); // 大于等于运算结果:true
小于等于运算符(<=)
-
小于等于运算符(<=):判断左操作数是否小于等于右操作数。
int a = 5; int b = 3; boolean isLessOrEqual = (a <= b); // 判断a是否小于等于b,并将结果赋值给isLessOrEqual变量 System.out.println("小于等于运算结果:" + isLessOrEqual); // 小于等于运算结果:false
1.3逻辑运算符:
逻辑与运算符(&&)
-
逻辑与运算符(&&):当两个操作数都为真时,结果为真。
boolean a = true; boolean b = false; boolean result = (a && b); // 判断a和b是否都为真,并将结果赋值给result变量 System.out.println("逻辑与运算结果:" + result); // 逻辑与运算结果:false
逻辑或运算符(||)
-
逻辑或运算符(||):当至少一个操作数为真时,结果为真。
boolean a = true; boolean b = false; boolean result = (a || b); // 判断a和b是否至少有一个为真,并将结果赋值给result变量 System.out.println("逻辑或运算结果:" + result); // 逻辑或运算结果:true
逻辑非运算符(!)
-
逻辑非运算符(!):对操作数取反,如果操作数为真,则结果为假;如果操作数为假,则结果为真。
boolean a = true; boolean result = !a; // 对a取反,并将结果赋值给result变量 System.out.println("逻辑非运算结果:" + result); // 逻辑非运算结果:false
1.4 赋值运算符:
简单赋值运算符(=)
-
简单赋值运算符(=):将右操作数的值赋给左操作数。
int a = 5; int b = a; // 将a的值赋给b System.out.println("简单赋值运算结果:" + b); // 简单赋值运算结果:5
复合赋值运算符(例如 +=、-=、*=、/=)
-
复合赋值运算符(例如 +=、-=、*=、/=):执行运算后将结果赋给左操作数。
int a = 5; a += 3; // 将a加上3,并将结果赋给a,相当于a = a + 3 System.out.println("复合赋值运算结果:" + a); // 复合赋值运算结果:8
1.5 位运算符:
按位与运算符(&)
-
按位与运算符(&):对两个操作数的每个位执行逻辑与操作。
int a = 5; // 二进制表示为 00000101 int b = 3; // 二进制表示为 00000011 int result = a & b; // 逻辑与运算,结果为 00000001,即十进制的1 System.out.println("按位与运算结果:" + result); // 按位与运算结果:1
按位或运算符(|)
-
按位或运算符(|):对两个操作数的每个位执行逻辑或操作。
int a = 5; // 二进制表示为 00000101 int b = 3; // 二进制表示为 00000011 int result = a | b; // 逻辑或运算,结果为 00000111,即十进制的7 System.out.println("按位或运算结果:" + result); // 按位或运算结果:7
按位异或运算符(^)
-
按位异或运算符(^):对两个操作数的每个位执行逻辑异或操作。
int a = 5; // 二进制表示为 00000101 int b = 3; // 二进制表示为 00000011 int result = a ^ b; // 逻辑异或运算,结果为 00000110,即十进制的6 System.out.println("按位异或运算结果:" + result); // 按位异或运算结果:6
按位取反运算符(~)
-
按位取反运算符(~):对操作数的每个位执行逻辑非操作。
int a = 5; // 二进制表示为 00000101 int result = ~a; // 逻辑非运算,结果为 11111010,即十进制的-6 System.out.println("按位取反运算结果:" + result); // 按位取反运算结果:-6
左移运算符(<<)
-
左移运算符(<<):将操作数的所有位向左移动指定的位数。
int a = 5; // 二进制表示为 00000101 int result = a << 2; // 左移2位,结果为 00010100,即十进制的20 System.out.println("左移运算结果:" + result); // 左移运算结果:20
右移运算符(>>)
-
右移运算符(>>):将操作数的所有位向右移动指定的位数,符号位被用于填充左侧。
int a = 5; // 二进制表示为 00000101 int result = a >> 2; // 右移2位,结果为 00000001,即十进制的1 System.out.println("右移运算结果:" + result); // 右移运算结果:1
无符号右移运算符(>>>)
-
无符号右移运算符(>>>):将操作数的所有位向右移动指定的位数,左侧用0填充。
int a = -5; // 二进制表示为 11111011 int result = a >>> 2; // 无符号右移2位,结果为 00111110,即十进制的62 System.out.println("无符号右移运算结果:" + result); // 无符号右移运算结果:62
这些位运算符在处理位级别的操作时非常有用,例如处理像图像处理、密码学和网络编程等领域的问题。它们直接参与对位的操作,可以对数据进行高效的处理和操控。注意要正确理解运算符的规则并遵循Java语法的要求。
1.6 条件运算符(三元运算符):
条件表达式?表达式1:表达式2
-
条件表达式?表达式1:表达式2:如果条件为真,则返回表达式1的值,否则返回表达式2的值。
int a = 5; int b = 3; int max = (a > b) ? a : b; // 判断a是否大于b,如果为真,则返回a的值,否则返回b的值,并将结果赋值给max变量 System.out.println("条件运算结果:" + max); // 条件运算结果:5
1.7 自增和自减运算符:
自增运算符(++)
-
自增运算符(++):将操作数的值增加1。
int a = 5; a++; // 将a的值增加1 System.out.println("自增运算结果:" + a); // 自增运算结果:6
自减运算符(–)
-
自减运算符(–):将操作数的值减少1。
int a = 5; a--; // 将a的值减少1 System.out.println("自减运算结果:" + a); // 自减运算结果:4
这些运算符在编程中起着重要的作用,可以用于各种计算和逻辑操作。使用运算符时,请确保理解每个运算符的含义和用法,并遵循Java语法的规定。
2 位运算过程
A = 0011 1100
B = 0000 1101
---------------
A&B = 0000 1100 // 两个为1才为1,其余为0
A|B = 0011 1101 // 有1就为1,其余为0
~B = 1111 0010 // 取反
---------------
// 左移(<<)和右移(>>)
二进制 十进制
0000 0000 0
0000 0001 1
0000 0010 2
0000 0100 4
0000 1000 8
0001 0000 16
// 2左移三位,输出16
System.out.println(2<<3);
// 由此可知:
左移(<<)一位就是 *2
右移(>>)一位就是 /2
// 位运算,效率极高