-
-
[分享Java基础·运算符
-
发表于: 2020-8-19 15:19 1455
-
运算符
3.1运算符的分类
运算符和表达式是Java程序的基本组成要素。运算符是一种特殊的符号,用以表示数据的运算,赋值和比较。不同的运算符用来完成不同的运算。
1.概念:Java语言使用运算符将一个或者多个操作数连缀成执行性语句,形成表达式,表达式是由运算符和操作数按一定语法规则组成的符号序列。
例如: Z = ( X * 2 ) + ( 5 – Y )
2.运算符按其功能划分,主要分为以下五类:
(1)算术运算符;
(2)赋值运算符;
(3)关系运算符;
(4)逻辑运算符
(5)位运算符
3.2算数运算符
算术运算符用在数学表达式中,它们的作用和在数学中的作用一样,下表列出了所有的算术运算符。
注意:字符串加任何数据类型都是字符串连接。
1.“+”加
“+”运算符不但用于计算两个数值型数据的和,还可用于字符串对象的连接。当+运算符的两个操作数一个是字符串而另一个是其他数据类型,系统会自动将另一个操作数转换成字符串,然后再进行连接。
2.“-”减
减法 - 左操作数减去右操作数 以及取负数操作
3.“*”乘
乘法相乘操作符两侧的值
4.“/”除法
除法运算符有些特殊,如果除法运算符的两个操作数都是整数类型,则计算结果也是整数,就是将自然除法的结果截断取整。如果除法运算符的两个操作数都是整数,则除数不可以是0,否则将引起除零异常。
5.“%”求余运算
求余运算的结果不一定总是整数,它的结果是使用第一个操作数除以第二个操作数,得到一个整数的结果剩余的值就是余数。由于求余运算也是进行除法运算,如果除求余运算,运算符的两个操作数都是整数,则求余运算的第二个操作数不可以是0,否则将引起除零异常。
在操作数涉及负数求余运算中,可通过下面规则计算:先去掉负号,再计算结果,结果的符号取被除数的符号。如求-10 % -3的结果,去掉负号求10 % 3,结果为1。由于被除数是负值,因此最终结果为-1。
探究:大家可以自己去试一下其中一个是浮点数,或者两个都是浮点数,第二个操作数为0,或者0.0的情况。以及第一个操作数是0的情况,比较简单。
6.自增(++)
将变量的值加1,分前缀式(如++a)和后缀式(如a++)。前缀式是先加1再使用;后缀式是先使用再加1。
7.自减(--)
将变量的值减1,分前缀式(如--a)和后缀式(如a--)。前缀式是先减1再使用;后缀式是先使用再减1。
3.3赋值运算符
赋值运算符的作用是将运算符右边操作数的值赋给运算符左边的变量。
赋值运算符分为两类,一类是简单赋值,一类是复合赋值。简单赋值是直接把运算符右边操作数的值赋给运算符左边的变量,运算符有“=”;复合赋值运算符复合赋值是先执行运算符指定的运算,然后再将运算结果赋值给运算符左边的变量,复合赋值运算符有“+=、-=、*=、/=、%=”。下表列出了Java语言支持的赋值运算符。
3.4 关系运算符
关系运算符用于关系表达式。关系运算符对两个操作数进行比较,并返回比较结果,比较结果的值为一个布尔值(true或false)。
== 检查如果两个操作数的值是否相等,如果相等则条件为真。
!= 检查如果两个操作数的值是否相等,如果值不相等则条件为真。
检查左操作数的值是否大于右操作数的值,如果是那么条件为真。
< 检查左操作数的值是否小于右操作数的值,如果是那么条件为真。
= 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。
<= 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。
3.5 逻辑运算符
逻辑运算符用于操作两个boolean类型的变量或者常量,逻辑运算符的运算对象只能是布尔型数据,并且运算结果也是布尔型数据。
逻辑运算符包括如下6种:逻辑非(!)、逻辑与(&)、逻辑或(|)、逻辑异或(^)、短路与(&&)、短路或(||)。
3.6位运算符
位运算符用来对二进制位进行操作,包括非(~)、与(&)、或(|)、异或(^)、右移(>>)、左移(<<)和无符号右移(>>>)。位运算符只能对整数型和字符型数据进行操作。
逻辑运算的规则如下表所示。
1.与运算符
与运算符用符号“&”表示,其使用规律如下:
两个操作数中位都为1,结果才为1,否则结果为0
2.或运算符
或运算符用符号“|”表示,其运算规律如下:
两个位只要有一个为1,那么结果就是1,否则就为0
3.非运算符
非运算符用符号“~”表示,其运算规律如下:
如果位为0,结果是1,如果位为1,结果是0,
4异或运算符
异或运算符是用符号“^”表示的,其运算规律是:
两个操作数的位中,相同则结果为0,不同则结果为1。
5.左移运算符
左移运算符是用符号“<<”表示的,其运算规律是:
将运算符左边的对象向左移动运算符右边指定的位数,在低位补0。
6."有符号"右移运算符
"有符号"右移运算符是用符号“>>”表示的,其运算规律是:
将运算符左边的对象向右移动运算符右边指定的位数。使用符号扩展机制,也就是说,如果值为正,则在高位补0,如果值为负,则在高位补1。
7."无符号"右移运算符
"无符号"右移运算符是用符号“>>>”表示的,其运算规律是:
将运算符左边的对象向右移动运算符右边指定的位数。采用0扩展机制,也就是说,无论值的正负,都在高位补0。
3.7运算符优先级
和数学中的运算符一样,Java运算符也存在优先级关系。在Java表达式中,优先级高的运算符先参与运算,优先级低的运算符后参与运算。下表给出了运算符的优先级,表中优先级栏,数字越小优先级越高,每个运算符用中文顿号分割。
本章小结
通过本节课的学习,我们掌握了表达式的概念:操作数+运算符,Z =
( X * 2 ) + ( 5 – Y ) 以及运算符的主要分类:算术运算符,赋值运算符,关系运算符,逻辑运算符和位运算符。
重点:运算符的含义、运算方式以及运算符优先级。
这一点需要同学们将每个表格里的内容熟记,并熟练使用各种运算符号。
习题
复习巩固
一、选择题
1、下面哪个不是算术运算符( )
A.*
B.%
C.++
D.==
2、下面哪个不是赋值运算符( )
A.+=
B.&&
C.=
D.*=
3、下面哪个不是关系运算符( )
A.>=
B.!=
C.!
D.<=
实战运用:根据本节所学内容,从键盘输入三角形的底和高,并输出三角形的面积。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
- [转帖]无需脱壳抓取软件加密包方法(逆向破解) 10704
- [分享]Android逆向——RSA加密算法 4110
- [原创]普通协议(HTTP)与安全协议(HTTPS) 3997
- [转帖]Android App加固原理与技术历程 4184
- [分享]实战分析人X的HTTP协议 5281