6、运算符

news2025/1/15 20:40:30

目录

一、赋值运算符

二、算数运算符

三、自增和自减运算符

四、比较运算符

五、逻辑运算符

六、位运算符

1. “按位与”运算

2. “按位或”运算

3. “按位取反”运算

4. “按位异或”运算

5. 移位操作

七、三元运算符

八、运算符优先级


一、赋值运算符

赋值运算符以符号“=”表示,它是一个二元运算符(对两个操作数作处理),其功能是将右方操作数所含的值赋给左方的操作数。例如:

该表达式是将100赋值给变量a。左方的操作数必须是一个变量,而右边的操作数则可以是任何表达式,包括变量(如a、number)、常量(如123、'book')、有效的表达式(如45*12)。

示例1:使用赋值运算符为变量赋值

遵循赋值运算符的运算规则,可知系统将先计算a+b的值,结果为15,然后将15赋值给变量c,因此c=15。

注意:由于赋值运算符“=”处理时会先取得右方表达式处理后的结果,因此一个表达式中若含有两个以上的“=”运算符,会从最右方的“=”开始处理。

public class Eval {  //创建类
       public static void main(String[]args) {  //主方法
              int a,b,c;  声明int型变量a,b,c
              a=15;  //将15赋值给a
              c=b=a+4;  //将a与4的和赋值给变量b,然后再赋值给变量c
              System.out.println("c值为i:"+c);  //将变量c的值输出
              System.out.println("b值为i:"+b);  //将变量b的值输出
       }
}

运行结果:

注意

在Java中可以把赋值运算符连在一起使用。如:

x = y = z = 5;

在这个语句中,变量x、y、z都得到同样的值5。但在实际开发中不建议使用这种赋值语句。

二、算数运算符

Java中的算术运算符主要有+(加)、-(减)、*(乘)、/(除)、%(求余),它们都

是二元运算符。

Java中算术运算符的功能及使用方式

其中,“+”和“-”运算符还可以作为数据的正负符号,如+5、-7。

注意:在进行除法运算时,0不能做除数。例如,对于语句“int a = 5/0;”,系统会抛出ArithmeticException异常。

示例3:在项目中创建类Arith,在主方法中定义变量,使用算术运算符将变量的计算结果输出。

public class Arith {  //创建类
       public static void main(String[]args) {  //主方法
              float number1=45.56f;//声明float型变量并赋值给number1
              int number2=152;  //声明int型变量并赋值给number2
              System.out.println("和为:"+(number1+number2));  //将变量相加之和输出
              System.out.println("差为:"+(number2-number1));  //将变量相减之差输出
              System.out.println("积为:"+(number1*number2));  //将变量相乘的积输出
              System.out.println("商为:"+(number1/number2));  //将变量相除的商输出
       }
}

运行结果:

三、自增和自减运算符

自增、自减运算符是单目运算符,可以放在操作元之前,也可以放在操作元之后。操作元必须是一个整型或浮点型变量。自增、自减运算符的作用是使变量的值增1或减1。放在操作元前面的自增、自减运算符,会先将变量的值加1(减1),然后再使该变量参与表达式的运算。放在操作元后面的自增、自减运算符,会先使变量参与表达式的运算,然后再将该变量加1(减1)。例如:

注意:++a与a++的作用都相当于a = a+1。

四、比较运算符

比较运算符属于二元运算符,用于程序中的变量之间、变量和自变量之间以及其他类型的信息之间的比较。比较运算符的运算结果是boolean型。当运算符对应的关系成立时,运算结果为true,否则为false。所有比较运算符通常作为判断的依据用在条件语句中。

较运算符共有6个

五、逻辑运算符

返回类型为布尔值的表达式,如比较运算符,可以被组合在一起构成一个更复杂的表达式。这是通过逻辑运算符来实现的。逻辑运算符包括&(&&)(逻辑与)、||(逻辑或)、!(逻辑非)。逻辑运算符的操作元必须是boolean型数据。在逻辑运算符中,除了“!”是一元运算符之外,其他都是二元运算符。

逻辑运算符的用法和含义

结果为boolean型的变量或表达式可以通过逻辑运算符组合为逻辑表达式。

用逻辑运算符进行逻辑运算

六、位运算符

位运算符“按位与”和“按位或”运算符外,其他只能用于处理整数的操作数。位运算是完全针对位方面的操作。整型数据在内存中以二进制的形式表示,如int型变量7的二进制表示是00000000 00000000 00000000 00000111。

左边最高位是符号位,最高位是0表示正数,若为1则表示负数。负数采用补码表示,如-8的二进制表示为111111111 111111111 1111111 11111000。这样就可以对整型数据进行按位运算。

1. “按位与”运算

“按位与”运算的运算符为“&”,为双目运算符。“按位与”运算的运算法则是:如果两个整型数据a、b对应位都是1,则结果位才是1,否则为0。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同:

2. “按位或”运算

“按位或”运算的运算符为“|”,为双目运算符。“按位或”运算的运算法则是:如果两个操作数对应位都是0,则结果位才是0,否则为1。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同:

3. “按位取反”运算

“按位取反”运算也称“按位非”运算,运算符为“~”,为单目运算符。“按位取反”就是将操作数二进制中的1修改为0,0修改为1:

4. “按位异或”运算

“按位异或”运算的运算符是“^”,为双目运算符。“按位异或”运算的运算法则是:当两个操作数的二进制表示相同(同时为0或同时为1)时,结果为0,否则为1。若两个操作数的精度不同,则结果数的精度与精度高的操作数相同:

5. 移位操作

除了上述运算符之外,还可以对数据按二进制位进行移位操作。Java中的移位运算符有以下3种。

 <<:左移。

 >>:右移。

 >>>:无符号右移。

左移就是将运算符左边的操作数的二进制数据,按照运算符右边操作数指定的位数向左移动,右边移空的部分补0。右移则复杂一些。当使用“>>”符号时,如果最高位是0,右移空的位就填入0;如果最高位是1,右移空的位就填入1:

Java还提供了无符号右移“>>>”,无论最高位是0还是1,左侧被移空的高位都填入0。

注意:移位运算符适用的数据类型有byte、short、char、int和long。

七、三元运算符

三元运算符的使用格式为:

三元运算符的运算规则为:若条件式的值为true,则整个表达式取值1,否则取值2。例如:

如上所示,表达式“20<45”的运算结果返回真,那么boolean型变量b取值为true;相反,表达式“45<20”返回为假,则boolean型变量b取值false。

注意:三元运算符等价于if…else语句。

八、运算符优先级

Java中的表达式就是使用运算符连接起来的符合Java规则的式子。运算符的优先级决定了

表达式中运算执行的先后顺序。通常优先级由高到低的顺序依次是:

  1. 增量和减量运算。
  2. 算术运算。
  3. 比较运算。
  4. 逻辑运算。
  5. 赋值运算。

运算符的优先级

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/178607.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[Android开发基础1] 五大常用界面布局

文章目录 一、线性布局 二、相对布局 三、帧布局 四、表格布局 五、约束布局 总结 一、线性布局 线性布局&#xff08;LinearLayout&#xff09;主要以水平或垂直方式来显示界面中的控件。当控件水平排列时&#xff0c;显示顺序依次为从左到右&#xff0c;当控件垂直排列时…

29/365 java 网络通信 IP InetAddress

1.网络通信&#xff1a; 如何定位到一台主机&#xff1f; IP地址 定位主机&#xff0c; 端口号定位到具体的应用程序 如何在主机之间通信&#xff08;传输数据&#xff09;&#xff1f; 网络通信协议 2.IP地址分类 IPv4: 32位 IPv6地址&#xff1a;128位 IPv6地址使用以冒号…

初学python100例-案例37 合并排序列表 少儿编程python编程实例讲解

目录 python合并排序列表 一、题目要求 1、编程实现 2、输入输出

C语言形参和实参的区别

如果把函数比喻成一台机器&#xff0c;那么参数就是原材料&#xff0c;返回值就是最终产品&#xff1b;从一定程度上讲&#xff0c;函数的作用就是根据不同的参数产生不同的返回值。这一节我们先来讲解C语言函数的参数&#xff0c;下一节再讲解C语言函数的返回值。C语言函数的参…

浅谈多任务学习

目录 一、前言及定义 二、多任务学习&#xff08;MTL&#xff09;的两种方法 2.1 参数的硬共享机制&#xff08;hard parameter sharing&#xff09; 2.2 参数的软共享机制&#xff08;soft parameter sharing&#xff09; 三、多任务学习模型 3.1 MT-DNN 3.2 ERNIE 2.0…

数学建模学习笔记(9)多元线性回归分析(非常详细)

多元线性回归分析1.回归分析的地位、任务和分类2.数据的分类3.对线性的理解、系数的解释和内生性4.取对数预处理、虚拟变量和交互效应5.使用Stata进行多元线性回归分析6.异方差7.多重共线性8.逐步回归法1.回归分析的地位、任务和分类 回归分析的地位&#xff1a;数据分析中最基…

cclow 面试心得

开源ccflow学习的一些心得目录概述需求&#xff1a;设计思路实现思路分析1.心得参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better result,wait for change,challenge …

JavaEE-文件和IO(一)

目录一、文件1.1 认识文件1.2 树型结构组织和目录1.3 文件路径二、Java中操作文件2.1 文件系统相关的操作一、文件 1.1 认识文件 平时说的文件一般都是指存储再硬盘上的普通文件&#xff0c;形如txt&#xff0c;jpg&#xff0c;MP4&#xff0c;rar等这些文件都可以认为是普通…

Java集合常见面试题(四)

Map 接口 HashMap 的底层实现 JDK1.8 之前 JDK1.8 之前 HashMap 底层是 数组和链表 结合在一起使用也就是 链表散列&#xff0c;数组是 HashMap 的主体&#xff0c;链表则是主要为了解决哈希冲突而存在的。 HashMap 通过 key 的 hashcode 经过扰动函数&#xff08;hash函数&…

JAVA基础知识08集合基础

目录 1. 集合 1.1 什么是集合&#xff1f; 1.2 ArrayList 1.2.1 ArrayList 长度可变原理 1.2.2 集合和数组的使用选择 1.2.3 ArrayList 集合常用成员方法 1. 集合 1.1 什么是集合&#xff1f; 集合是一种容器&#xff0c;用来装数据的&#xff0c;类似于数组。 其长度可…

线段树的懒标记与应用

目录 一、前言 二、Lazy-tag技术 1、update() 中的lazy-tag 三、例题 1、区间修改、区间查询&#xff08;lanqiaoOJ 1133&#xff09; 一、前言 本文主要讲了线段树的Lazy-tag技术和一道例题&#xff0c;建议自己要多练习线段树的题目。 二、Lazy-tag技术 背景&#xf…

水面漂浮物垃圾识别检测系统 YOlOv7

水面漂浮物垃圾识别检测系统通过PythonYOLOv7网络模型&#xff0c;实现对水面漂浮物以及生活各种垃圾等全天候24小时不间断智能化检测。Python是一种由Guido van Rossum开发的通用编程语言&#xff0c;它很快就变得非常流行&#xff0c;主要是因为它的简单性和代码可读性。它使…

Linux- 系统随你玩之--文本处理三剑客-带头一哥-awk

文章目录1、awk概述2、awk原理2.1、 awk 工作原理2.2、 与sed工作原理比较2.3、 awk与sed的区别3、使用方法及原理3.1、格式如下&#xff1a;3.2、 匹配规则3.3、 参数说明3.4、处理规则与流程控制3.5、 常用 awk 内置变量3.6、 awk 正则表达式解释4、操作实例4.1、 准备工作4.…

(十七)抽象队列同步器AQS

AQSAbstractQueuedSynchronizer抽象同步队列简称AQS&#xff0c;它是实现同步器的基础组件&#xff0c;并发包中锁的底层就是使用AQS实现。类图如下&#xff0c;AbstractQueuedLongSynchronizer与AbstractQueuedSynchronizer结构一模一样&#xff0c;只是AbstractQueuedSynchro…

Springboot+java师生交流答疑作业系统

&#xff0c;本系统拥有学生&#xff0c;教师&#xff0c;管理员三个角色&#xff0c;学生可以注册登陆系统&#xff0c;查看新闻&#xff0c;查看教学&#xff0c;在线提问答疑&#xff0c;提交作业&#xff0c;发布交流&#xff0c;留言反馈等功能&#xff0c;教师可以发布教…

恶意代码分析实战 14 反虚拟机技术

14.1 Lab17-01 题目 这个恶意代码使用了什么反虚拟机技术&#xff1f; 恶意代码用存在漏洞的x86指令来确定自己是否运行在虚拟机中。 如果你有一个商业版本IDAPro&#xff0c;运行第17章中代码清单17-4所示的IDAPython脚本&#xff08;提供如jindAniM.py&#xff09;&#…

spring boot前后端交互之数据格式转换

在前后端分离开发的项目种&#xff0c;前端获取数据的方式基本都是通过Ajax。请求方法也有所不同,常见的有POST,GET,PUT,DELETE等。甚至连请求的数据类型都不一样&#xff0c;x-www-form-urlencodeed,form-data,json等。 那么在前后端交互过程中&#xff0c;具体的数据该如何接…

ESP32设备驱动-8x8LED点阵驱动(基于Max7219+SPI)

8x8LED点阵驱动(基于Max7219+SPI) 1、Max7219介绍 MAX7219/MAX7221是紧凑型串行输入/输出共阴极显示驱动器,可将微处理器(Ps)连接到多达8位的7段数字LED显示器、条形图显示器或64个独立LED。片上包括一个 BCD 代码 B 解码器、多路扫描电路、段和数字驱动器,以及存储每个数字…

通信电子、嵌入式类面试题刷题计划04

文章目录036——看门狗电路的作用是什么&#xff1f;【社招】037——你了解CAN总线协议吗&#xff1f;说一说你的理解【社招】038——锁存器、触发器、寄存器三者的区别&#xff1f;【校招】039——D触发器和D锁存器的区别是什么&#xff1f;【校招】040——三极管和MOS管的区别…

Cadence PCB仿真使用Allegro PCB SI生成单网络EMI报告Single Net EMI Report及报告导读图文教程

🏡《Cadence 开发合集目录》   🏡《Cadence PCB 仿真宝典目录》 目录 1,概述2,生成报告3,报告导读4,总结1,概述 单网络EMI报告是值将差分模式下的网络视为单个网络,分析来自时钟上升沿的辐射影响。本文简单介绍使用Allegro PCB SI生成单网络EMI报告的方法,及Singl…