Java:运算符的问题

 

算术运算符:

image_594bc412_77b8

算术运算符的注意问题

1. 如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数是负数就另当别论。

-5%3=-2;-5%-3=-2;符号跟被模数(左边)。

2. 对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。

例如:int x=3510;x=x/1000*1000; x的结果是? 3000

3560.0/1000*1000=3560.0

3. “+”除字符串相加功能外,还能把非字符串转换成字符串 ,

例如:System.out.println("5+5="+5+5);//打印结果是?5+5=10

 

int a = 3; a+=5;几乎等同运算a=a+5;但+=隐含自动转换

 

比较运算符/关系运算符:

image_594bc412_43b0

 

 

逻辑运算符:

image_594bc412_2891

· 逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 & x<6 。

 

· “&”和“&&”的区别(不短路跟短路的区别):

单&时,左边无论真假,右边都进行运算;

双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。

 

“|”和“||”的区别同理,双或时,左边为真,右边不参与运算。

有些时候这个会导致计算不同:

image_594bc412_3542

 

3. 异或( ^ )与或( | )的不同之处是:异或左右都为true时,结果为false(true^true==false)。

 

位运算符:

image_594bc412_5c24

位运算是直接对二进制进行运算。(补码)

对于<< 和>>,移n位,就是对原数值乘以(<<)或者除以(>>)2的n次幂。

image_594bc412_43ca

 

· 不要迷糊--负数右移,原符号位上的数也右移!(如果原本该数为负数,按照原理,右移则看最高位补空缺,保证了此时的原数值的符号不变)

 

特殊使用技巧:

一个数X对同一个数异或两次,所得结果为X:6^3^3=6,3^6^3=6

练习:

11.最有效率的方式算出2乘以8等于几?2<<3?image_594bc412_6e67

2.对两个整数变量的值进行互换

· image_594bc412_2694

· image_594bc412_7ff7

· image_594bc412_303c

&运算可用于获取二进制的有效位

image_594bc412_6390

image_594bc412_50e0

异或

image_594bc412_37fa

image_594bc412_66bd

位运算符可以操作字符,但结果为int

image_594bc412_1ab2

 

 

三元运算符:

· 格式:

(条件表达式)?表达式1:表达式2; 括号有时可没有,但为了格式化,写了好。

如果条件为true,运算后的结果是表达式1;

如果条件为false,运算后的结果是表达式2;

· 示例:

获取两个数中大数。

int x=3,y=4,z;

z = (x>y)?x:y;//z变量存储的就是两个数的大数。

 

运算符优先级:

image_594bc412_38c6

转载于:https://www.cnblogs.com/progor/p/7067303.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值