JAVA运算符

目录

运算符和表达式

算术运算符

键盘输入一个n位数,Scanner

​编辑​编辑隐式转换(自动类型提升)

强制转换

字符串的+操作

​编辑ASCII表的字符计算

自增自减运算符

赋值运算符

关系运算符   0&1

逻辑运算符

短路与、短路或

三元运算符

​编辑运算符优先级

原码、反码、补码

短路与的特殊之处


运算符和表达式

运算符:一些符号。

表达式:用运算符把字面量或者常量连接起来,符合java语法的式子。

例如:int sum=a+b;  "+"为运算符,a+b为表达式

算术运算符

+; -; *; /;%(取模或者取余)

取模或者取余运算

在代码中,如果有小数参与运算,结果可能是不精确的。整数参与计算,结果只能为整数;只有有小数参与运算,结果为小数。

取模应用场景:①判断A是否可以被B整除  A%B

②判断数字是否为整数

③斗地主发牌  分别三个人%3取余

数值拆分:公式总结

个位:数值%10

十位:数值/10%10

百位:数值/100%10

千位:数值/1000%10

键盘输入一个n位数,Scanner
隐式转换(自动类型提升)

1、把取值范围小的数值转成取值范围大的(就像把少的放到大的水瓶中)

2、byte short char 三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算

3、取值范围:byte<short<int<long<float<double

强制转换

例子:如果把一个取值范围大的数据,赋值给取值范围小的变量,是不允许直接赋值的,如果一定要做要进行强制类型转换。

格式:目标数据类型 变量名=(目标数据类型)被强转的数据;

字符串的+操作

①+操作中出现字符串时,+是字符串连接符,而不是算术运算符,会将前后的数据进行拼接,产生一个新的字符串

②连续进行+操作时,从左到右逐个执行

只要有字符串的出现,就是字符串的形式出现,双引号里面的内容是字符串。

ASCII表的字符计算

字符+字符时,会把字符通过ASCII表查询到对应的数字在进行计算

字符+数字时,会把字符通过ASCII表查询到对应的数字在进行计算

小结:只要有字符串的操作,就是拼接操作;只要是数字和字符以及字符和字符,就是数字计算

自增自减运算符

总结:int b=a++;//先用后加

int b=++a;先加后用

赋值运算符

关系运算符   0&1

关系运算符

==

判断a是否等于b,成立为true,不成立为false
!=成立为true,不成立为false
>成立为true,不成立为false
<成立为true,不成立为false
>=成立为true,不成立为false
<=成立为true,不成立为false

注意:关系运算符的结果都是boolean类型,要么是true,要么是false,千万不能把==写成=

逻辑运算符

逻辑与&    并且

逻辑或|      或者

逻辑异或^       相同为false,不同为true    例子:民政局登记 男女为1,男男或女女相同为0

逻辑非!        取反

短路与、短路或

短路与  &&   结果和&相同,但是有短路效果   两边同时为真才为真,否则为假    

理解:当左边的表达式能确定最终的结果,右边便不再参与运行

短路或    ||      结果和|相同,担忧短路效果      两边同时为假,结果才为假

短路与和短路或与逻辑与和逻辑或的结果一样,只是出现短路结果,但在某些情况下容易出现错误:下面的例子:

三元运算符

格式:  关系表达式?表达式1:表达式2

运算符优先级

()优先于所有(all)

原码、反码、补码

原码:十进制数据的二进制表示形式,最左边是符号位,0正1负

反码:为了解决原码不能计算负数的问题而出现的。

规则:正数的反码不变,负数的反码在原码的基础上,符号位不变,数值取反,0变1,1变0

+0原码:0000 0000反码:0000 0000(正数的反码和原码一样)
-0原码:1000 0000反码: 1111 1111

补码完美解决了计算机中正数和负数的存储问题(因为计算机的存储是存储了两个0),所以数字的存储及运算是补码计算。

补码byte的取值范围是-128到+的127。

总结:补码出现的目的:为了解决负数计算时跨0的问题而出现的

补码的计算规则:正数的补码不变,负数的补码是反码+1,另外补码可以多记录一个特殊的值-128,该数据在一个字节下,没有原码和反码

补码的注意点:计算机中的存储和计算都是以补码的形式出现的

短路与的特殊之处

<<    左移,相当于成2

>>右移,相当于除2

>>> 无符号右移

  • 32
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值