编程语言
首页 > 编程语言> > JAVA运算符

JAVA运算符

作者:互联网

运算符

运算符:就是再用变量或常量进行运算时,常用到的符号,即算数运算符、关系运算符、逻辑运算符、位运算符、移位运算符、赋值运算符、三元运算符、逗号运算符、字符串运算符、转型运算符。

1.算数运算符

问题:当一个浮点数据加上一个整型数据,结果会得到什么类型的数据?在不同类型的数据之间进行运算时,为了使结果更加精确,系统会将结果自动转化成精度更高的数据类型(若想将高精度转化为低精度,必须强制转化)。
如图:
在这里插入图片描述
这里的a是int类型,b是单精度浮点型(float类型),相加结果为一个浮点型(float)数据。
由此,为了保证经过算数运算符后结果的数据精度,尽量让结果与运算数据中精度较高的类型相同。
如何将结果进行转换,什么规律?
当使用运算符把两个操作数结合到一起时,首先会将两个操作数转化为相同类型的数据;
若操作数中有double/float/long,一定先转换成double/float/long,精度高低比较:double>float>long其他任何两个基本类型数据操作,两个操作数都会自动转化成int类型。
算术运算符总共有7种:“+”、“-”、“*”、“/”、“%”(余数)、“++”(自加)、“–”(自减)。
代码如图:
在这里插入图片描述
运行结果如图:
在这里插入图片描述
下面讨论自加和自减运算符的用法:
自加运算符分为两种:一种是前自加,一种是后自加;两者的区别在于运算时,自加的值是否参加运算。代码如图:
在这里插入图片描述

前自加,先让a的值加1,然后再将加1后的结果11赋给a,故,a的输出值为11;
后自加,先把b的值赋给b,然后,将b的值加1,存储到内存空间,故输出b=10,而存储在内存中的b的值为11。
在这里插入图片描述
在这里插入图片描述
同样的,自减运算符也有两种,一种是前自减,一种是后自减。用法与自加相同。
在这里插入图片描述
总结:
++x:因++在前,记为先加后用
x++:因++在后,记为先用后加
–x:因–在前,记为先减后用
x–:因–在后,记为先用后减

2.关系运算符

关系运算符,指在两个操作数之间的关系,包括“>”、“<”、“>=”、“<=”、“==”、“!=”.算数运算符的结果都是数字,而关系运算符的结果则是布尔型数据。
在实际开发中,常使用关系运算符作为判断条件,若条件为真,将如何处理,若条件为假,又该如何处理。
用例如下:
在这里插入图片描述

3.逻辑运算符

逻辑运算符共有3种:“非”、“与”、“或”。逻辑运算符一般与关系运算符结合起来使用。
(1)NOT运算符
NOT运算符就是一个否定的意思,英文中“NOT”就是“不”的意思,在Java中,NOT用符号“!”表示。
(2)AND运算符
英文“AND”的意思为“与”。使用它必须,满足AND前后两个条件。AND运算符在Java中用符号“&&”表示。
(3)OR运算符
英文“OR”为“或”的意思,使用它只要满足“OR”前后两个条件中的任意一个条件。OR运算符在Java中用符号“||”表示,原理如下,两个操作数之哟啊有一个是“true”,则结果为“true”,否则结果为“false”。
用例如图:
在这里插入图片描述

4.位运算符

位运算符主要针对二进制进行运算,包括“与”、“非”、“或”、“异或”。从表面上看和逻辑运算符有点像,但逻辑运算符是针对两个关系运算符来进行逻辑运算的,而位运算符主要针对两个二进制的位进行运算。
(1)与运算符
与运算符用符号“&”表示,使用规律如下:两个操作数中位都为1时,结果才为1,否则为0.如图:
在这里插入图片描述

(2)或运算符
或运算符用符号“|”表示,运算规律如下:两个位只要有一个为1,则结果为1,否则为0.
在这里插入图片描述
(3)非运算符
非运算符用符号“~”表示,运算规律如下:如果位为0,结果为1;如果位为1,结果为0.类似于取反。
在这里插入图片描述
a的值为1,二进制数为0001,取反得到1110,最高位(左边第一位数字)为1表示负数,为了得到负数的二进制数,我们采用补数的方式进行计算,将取反后的结果“加1”,即1110取反得到0001加1后,结果为0010,0010是数字2的二进制数。
(4)异或运算符:
异或运算符用符号“^”表示,运算规律为,两个操作数的位中,结果相同得0,不同得1
如图:
在这里插入图片描述

5.移位运算符

主要包括左移运算符“<<”、右移运算符“>>>”、带符号的右移运算符“>>”.
(1)左移运算符:用符号“<<”表示,将运算符左边的对象,向左移动运算符右边指定的位数,并且在低位补0
(2)右移运算符:用符号“>>”表示,将运算符左边的运算对象向右移动运算符右边指定的位数。若是整数,在高位补0,若为负数,在高位补1
如图例:(“//”后忘记改了,勿理)
在这里插入图片描述
由图例可知,移位运算符可以通过数位移动来代替乘法和除法运算。这里的倍数关系跟
基数
有关,二进制下,基数为2,若是右移则会变为原来的1/2,1/20,1/200…即除法运算。注意右移后空出来的高位的数值,有0和1两种形式,若想区分什么时候补0,什么时候补1,下面的二进制数表示负数的方法有明确说明。
二进制数在表示负数值时,一般会把最高位作为符号来使用,因此我们把这个最高位称为符号位。符号位位0时表示正数,为1时表示负数。
-1用8位二进制数数来表示的话是“10000001”吗?,答案显然不是,正确答案是“11111111”。
计算机在做减法运算时,实际上内部是在做加法运算,如何实现?在表示负数时适用“二进制的补数”。
补数就是用整数来表示负数。为了获得补数,我们将二进制数的各数位的数值全部取反,然后再将结果加1.例如,二进制数-1,只需求得1(00000001)的补数即可。00000001(原二进制数)—>11111110(取反后)—>11111111(+1后)
1+(-1)=00000001+11111111,出现了最高位溢出的情况,对于溢出的位,计算机会直接忽略掉,在8位的范围内进行计算时,100000000这个9位二进制数会被认为是0000000这一8位二进制数,即有效位只有8位。3-5=00000011+11111011=11111110,最高位为1,表示结果为负数,11111110的补数,取反加1后为00000010,即2的二进制数,结果为-2.
(3)无符号右移运算符
无符号右移运算符用符号“>>>”表示,是将运算符左边的对象向右边移动运算符右边指定的位数,并且在高位补0,其实右移n位,就相当于除上2的n次幂。
如图:
在这里插入图片描述

6.赋值运算符

赋值就是将数值赋给变量,而这个赋值运算符就充当了这个赋值的任务,其实最简单的赋值运算符就是“=”,除了“=”之外,还有“+=”、“-=”、“*=”、“/=”、“%=”、“>>=”、“>>>=”、“<<=”、“&=”、“|=”、“^=”.
如图例:
在这里插入图片描述

7.三元运算符

三元运算符一般用的很少,因为它在程序中的可读性很差,所以不建议经常使用三元运算符,但很少使用并不代表不使用。
三元运算符的表达形式如下:布尔表达式?值0:值1
它的运算过程:若布尔表达式的结果为true,就返回值0;若布尔表达式的结果为false,就返回值1.
如图例:
在这里插入图片描述
注意不能断到下一行,会出现以下情况(无法正常编译)
在这里插入图片描述

8.逗号运算符:

在Java程序中,逗号运算符一般用来将几个数值彼此分开,例如数组中的每个元素都是使用逗号于=与其他元素隔开。

9.转型运算符:

将一种类型的对象或数据,经过强制转换而转变为另一种类型的数据。它的格式,在需要转型的数据前加上“()”,然后在括号内加入需要转化的数据类型。
有的数据经过转型运算后,精度会丢失,而有的会更加精确,即精度低的转向精度高的,精度会更加精确,精度高的转向精度低的会丢失精度。
如图例:
在这里插入图片描述

10.运算符的优先级别

在这里插入图片描述

ke洋 发布了4 篇原创文章 · 获赞 0 · 访问量 51 私信 关注

标签:JAVA,运算,结果,二进制,符号,运算符,自加
来源: https://blog.csdn.net/m0_46015143/article/details/104594259