【05】Java 运算符

【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
        // 位运算,效率极高
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千寻简

感谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值