计算机等级考试二级Java-第三篇:运算符和表达式

1.Java的运算符代表着特定的运算指令

按照运算符功能来分,运算符有七种:算术运算符,关系运算符,逻辑运算符,位运算符,赋值运算符,条件运算符和其他运算符。

按照连接操作数的多少来分,有一元运算符,二元运算符和三元运算符。

2.表达式

是由常量,变量,对象,方法调用和运算符组成的式子。表达式必须符合一定的规范,才可以被系统理解,编译和运行。表达式的值就是对表达式自身运算后得到的结果。

根据运算符的不同,表达式相对应地分为以下几类:算术表达式,关系表达式,逻辑表达式,位运算表达式,赋值表达式,条件表达式等。

3.算术运算符和算术表达式

3.1加减运算符和算术表达式

加减运算的结合性是从左到右。加减运算的操作元是整型或浮点型数据,加减运算符的优先级是5级。

3.2乘除和求余运算符

乘除求余运算的符号为*,/,%,都是双目运算符。这些运算符的结合性都是从左到右的,优先级是4级。

3.3自增自减运算符

++,--,都是一元运算符,运算符的优先级是2级。运算符可以放在操作元前面,也可以放在后面,但是操作元必须是一个整型或浮点型变量(不能是常量或者是表达式)。运算符的作用是使变量的值增添1或者减少1。

比如++x,--x表示在使用x之前,先使x的值增加(减少)1。

x++,x--表示的是在使用x之后,是得x的值增加(减少)1。

3.4算术表达式

用算术符号和操作元连接起来的符合Java语法规则的式子,称为算术表达式。

3.5算术混合运算的精度

精度从低到高排列的顺序是:

byte,short,int,long,float,double

Java将按位运算符两边的操作元的最高精度保留结果的精度,例如:5/2的结果为2,要想得到2.5,必须写成5.0/2,或者是5.0f/2

3.6关系运算符与关系表达式

关系运算符用来比较两个值的关系,关系运算符的结果是boolean型数据,当运算符对应的关系成立时,运算结果是true,否则是false

3.7逻辑运算符与逻辑表达式

逻辑运算 用来实现boolean型数据的逻辑“与”,“或”和“非”运算,运算结果是boolean型数据。

逻辑“与”和逻辑“或”

他们的符号是&&,||,是双目运算符,操作元是boolean型的变量求值结果是boolean型数据的表达式。

3.8逻辑非

运算符号是!,是单目运算符,操作元在左边。当操作元是true时,运算结果是false。运算级别是2级。结合性是从右到左。

3.9逻辑表达式

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

比如:24>18&&4<0,x!=0||y!=0.

4.位运算符和 位运算表达式

位运算都是对整型数据的二进制进行的。

位逻辑运算符

4.1“按位与”运算符

“&”是双目运算符,对两个整型数据a,b按位进行运算,运算结果是一个整型数据c。运算法则是:如果a,b两个数据对应位都是1,则c的该位是1,否则是0.如果b的精度高于a,那么结果c的精度和b相同。

4.2“按位或”运算符

“|”是双目运算符。对两个整型数据a,b按位运算,运算结果是一个整型数据c。运算法则是:如果a,b两个数据对应位都是0,则c的该位是0,否则是1。如果b的精度高于a,那么结果c的精度与b相同。

4.3“按位或”运算符

“~”是单目运算符。对一个整型数据a按位进行运算,运算结果是一个整型数据c。运算法则是:如果a对应位是0,则c的该位是1,否则是0。

4.4“按位异或”运算符

位异或运算是数学或者计算机中运用到的数据处理的方法。感觉是一种思路,当然也是运用到了他的原理。

异或运算

首先异或表示当两个数的二进制表示,进行异或运算时,当前位的两个二进制表示不同则为1 ,相同则为0. 改方法被广泛用来统计一个数的1的位数。

即: 0 ^ 0 = 0 , 0 ^ 1 = 1, 1 ^ 0 = 1 , 1 ^ 1 = 0 , 按位异或的3个特点: 1.) 0 ^ 0 = 0 , 0 ^ 1 = 1, 0异或任何数=任何数。 2.)1 ^ 0 = 1 , 1 ^ 1 = 0 , 1异或任何数=任何数取反。 3.)任何数异或自己 = 把自己置0。

按位异或的几个常见用途: (1) 使某些特定的位翻转 例如对数10100001的第2位和第3位翻转,则可以将该数与00000110进行按位异或运算。       10100001^00000110 = 10100111

(2) 实现两个值的交换,而不必使用临时变量。 例如交换两个整数a=10100001,b=00000110的值,可通过下列语句实现:     a = a^b;   //a=10100111     b = b^a;   //b=10100001     a = a^b;   //a=00000110

位运算

位运算时把数字用二进制表示之后,对每一位上0或者1的运算。理解位运算的第一步是理解二进制。二进制是指数字的每一位都是0或者1.比如十进制的2转化为二进制之后就是10。

其实二进制的运算并不是很难掌握,因为位运算总共只有5种运算:与、或、异或、左移、右移。如下表: 与(&) 0 & 0 = 0 1 & 0 = 0 0 & 1 = 0 1 & 1 = 1 或(|) 0 | 0 = 0 1 | 0 = 1 0 | 1 = 1 1 | 1 = 1 异或(^) 0 ^ 0 = 0 1 ^ 0 = 1 0 ^ 1 = 1 1 ^ 1 = 0

左移运算:

左移运算符m<<n表示吧m左移n位。左移n位的时候,最左边的n位将被丢弃,同时在最右边补上n个0.比如:

00001010 << 2 = 00101000

10001010 << 3 = 01010000

右移运算:

右移运算符m>>n表示把m右移n位。右移n位的时候,最右边的n位将被丢弃。但右移时处理最左边位的情形要稍微复杂一点。这里要特别注意,如果数字是一个无符号数值,则用0填补最左边的n位。如果数字是一个有符号数值,则用数字的符号位填补最左边的n位。也就是说如果数字原先是一个正数,则右移之后再最左边补n个0;如果数字原先是负数,则右移之后在最左边补n个1.下面是堆两个8位有符号数作右移的例子:

00001010 >> 2 = 00000010

10001010 >> 3 = 11110001

关于移位的运算有这样的等价关系:把整数右移一位和把整数除以2在数学上是等价的。

a << = 1 ; //a左移一位等效于a = a * 2;

a << = 2 ; //a左移2位等效于a = a * 2的2次方(4);   计算机内部只识别1、0,十进制需变成二进制才能使用移位运算符<<,>> 。 int j = 8; p = j << 1; cout<<p<<endl; 在这里,8左移一位就是8*2的结果16 。

移位运算是最有效的计算乘/除乘法的运算之一。

按位与(&)其功能是参与运算的两数各对应的二进制位相与。只有对应的两个二进制位均为1时,结果位才为1,否则为0 。参与运算的数以补码方式出现。

这里用到了这样一个知识点:把一个整数减去1,再和原整数做与运算,会把该整数最右边一个1变成0 。 那么一个整数的二进制表示中有多少个1,就可以进行多少次这样的操作。

总结:把一个整数减去1之后再和原来的整数做位与运算,得到的结果相当于是把整数的二进制表示中的最右边一个1变成0 。

位运算的应用可以运用于很多场合:

清零特定位(mask中特定位置0,其它位为1 , s = s & mask)。 取某数中指定位(mask中特定位置,其它位为0, s = s & mask)。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

聚星文社AI工具

聚星文社AI工具是一种基于人工智能技术开发的工具&#xff0c;旨在辅助作者和写作人员提升创作效率和质量。 点击下载 该工具可以提供多项功能&#xff0c;包括语法纠错、智能推荐、文章自动摘要等。 通过使用聚星文社AI工具&#xff0c;用户可以在写作过程中得到即时的纠错建…

数据库使用笔记

1.mysql数据库频繁访问导致连接超时 解决办法一&#xff1a; 优化查询&#xff1a;检查并优化SQL查询语句&#xff0c;减少不必要的数据库调用。增加连接池大小&#xff1a;如果应用程序使用连接池&#xff0c;可以考虑增加连接池的最大连接数。&#xff08;注&#xff1a;不能…

权限维持-域环境单机版---自启动

免责声明:本文仅做技术交流与学习... 目录 1.windows自启动路径加载 2.自启动服务加载 3.自启动注册表加载 所在regedit目录: -添加启动项 --重启生效 4.计划计时任务 windows软件或程序服务开机自启动的四种方式-CSDN博客 1.windows自启动路径加载 --当windows注销…

LabVIEW在机器人研究所中的应用

机器人研究所致力于机器人技术的研究与开发&#xff0c;涵盖工业机器人、服务机器人、医疗机器人等多个领域。研究所需要一个高效、灵活的实验控制和数据采集系统&#xff0c;以进行复杂的机器人实验&#xff0c;并对实验数据进行实时处理和分析。 项目需求 实时控制与监控&am…

ai轨迹过京东m端

声明(a15018601872) 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 本…

什么是WABF验证?

今年的618电商购物节已经落下帷幕&#xff0c;在此期间&#xff0c;各大电商平台都普遍迎来了用户访问量、优惠券领取量和交易量的显著增长。在这一时期&#xff0c;业务安全成为电商平台关注的焦点。验证码作为一种常见的业务安全工具&#xff0c;能够有效应对业务安全问题。然…

探究Qt5【元对象编译器,moc】的 设计原理和技术细节

Qt5是一个跨平台C框架&#xff0c;它有个突出的特点就是其元对象系统&#xff0c;该系统通过扩展C的能力&#xff0c;为事件处理提供了信号与槽机制、为对象内省提供了属性系统。为了支持这些特性&#xff0c;Qt引入了元对象编译器&#xff08;Meta-Object Compiler, MOC&#…

单源最短路径问题(Dijstra)

#include<iostream> using namespace std; #define MAX 500 #define INT 999 typedef struct {char vex[MAX];int Edge[MAX][MAX];int vexnum,arcnum; }MGraph; void InitMG(MGraph &MG) {cout<<"输入顶点数和边数&#xff1a;";cin>>MG.vexnu…

探索区块链:颠覆性技术的崛起

目录 一、引言 二、区块链技术概述 三、区块链应用场景 四、区块链面临的挑战 五、区块链的未来展望 六、结语 一、引言 在数字化浪潮的推动下&#xff0c;区块链技术以其独特的去中心化、透明性和不可篡改性等特性&#xff0c;正在逐步改变我们的生活。从金融领域到供应…

树莓派4B_OpenCv学习笔记15:OpenCv定位物体实时坐标

今日继续学习树莓派4B 4G&#xff1a;&#xff08;Raspberry Pi&#xff0c;简称RPi或RasPi&#xff09; 本人所用树莓派4B 装载的系统与版本如下: 版本可用命令 (lsb_release -a) 查询: Opencv 版本是4.5.1&#xff1a; 今日学习 OpenCv定位物体实时位置&#xff0c;代码来源是…

Hi3861 OpenHarmony嵌入式应用入门--LiteOS Event

CMSIS 2.0接口使用事件标志是实时操作系统&#xff08;RTOS&#xff09;中一种重要的同步机制。事件标志是一种轻量级的同步原语&#xff0c;用于任务间或中断服务程序&#xff08;ISR&#xff09;之间的通信。 每个事件标志对象可以包含多个标志位&#xff0c;通常最多为31个&…

你的编程小助手:Kimi!!【送源码】

从OpenAI发布AI大模型到现在已经快2年时间&#xff0c;中间随着新模型的不断出现&#xff0c;也让大家认识到了AI的强大之处&#xff0c;现在AI已经渗透到我们生活&#xff0c;工作的方方面面。 这期间国产大模型也在努力发展&#xff0c;不断完善&#xff0c;甚至一些大模型在…

用Vue3和Plotly.js生成多折线图

本文由ScriptEcho平台提供技术支持 项目地址&#xff1a;传送门 基于 Plotly.js 的交互式折线图绘制 应用场景介绍 本代码示例展示了如何使用 Plotly.js 库创建交互式折线图。用户可以在图中点击点以添加注释&#xff0c;从而实现数据可视化和探索。此功能可广泛应用于数据…

ai智能语音机器人在电销里发挥怎样的作用

得益于语音识别技术的的进步&#xff0c;人工智能发展越来越成熟。相信作为企业的管理者&#xff0c;都遇到过这样的事&#xff1a;一个电销新人刚刚入行&#xff0c;需求经过一两个月的学习培训才能成为一名合格的销售人员。在这段学习的期间&#xff0c;企业投入的成本是没有…

PS-抠图

在一个图片中&#xff0c;当你单独用到一个人物&#xff0c;或者物品的时候&#xff0c;你可以选择抠图&#xff0c;单独把这个人物模型给扣下来&#xff0c;不要他的背景&#xff0c;不要其他物品。 在PS中&#xff0c;我们看到一个大熊猫&#xff0c;当我们想用到这个熊猫的…

快速清理Word中的嵌套表格

实例需求&#xff1a;Word文档中表格有的单元格中包含嵌套表格&#xff08;注意其中表格中有合并单元格&#xff09;&#xff0c;如下图所示。 现在需要删除单元格顶部的嵌套表格&#xff08;如上图中的表格1和表格3&#xff09;&#xff0c;如下图所示&#xff0c;如果表格较多…

友力科技广州数据中心搬迁

搬迁工作内容 1.搬迁技术工作 1)确定机房搬迁的负责人以及负责人的联系方式&#xff0c;保证在搬迁的过程中统一指挥管理。 2)确定服务器的数量&#xff0c;服务器的型号&#xff0c;服务器的配置等&#xff0c;如有需要&#xff0c;联系相关服务器的供货商或者厂家提供技术支持…

EdgeOne 边缘函数 - 构建边缘网关

目前&#xff0c;各大主流厂商都推出了自己的边缘 Serverless 服务&#xff0c;如 CloudFlare Workers、 Vercel EdgeRuntime 等&#xff1b;腾讯云 EdgeOne 边缘函数提供了部署在边缘节点的 Serverless 代码执行环境&#xff0c;只需编写业务函数代码并设置触发规则&#xff0…

免费分享:2021年全国30米分辨率最大NDVI数据集(附下载方法)

气候变化及其对陆地生态系统的影响已成为核心议题&#xff0c;备受社会各界的瞩目。植被作为地理环境的关键构成部分&#xff0c;是气候变迁与人文活动对环境影响的敏感晴雨表。其中&#xff0c;归一化植被指数&#xff08;NDVI&#xff09;可以作为衡量地面植被状况的重要指标…

【C语言】解决C语言报错:Invalid Pointer

文章目录 简介什么是Invalid PointerInvalid Pointer的常见原因如何检测和调试Invalid Pointer解决Invalid Pointer的最佳实践详细实例解析示例1&#xff1a;未初始化的指针示例2&#xff1a;已释放的指针示例3&#xff1a;返回局部变量的指针示例4&#xff1a;野指针 进一步阅…
最新文章