概述
一、算术运算符
1.%
取余,取余的实质是a % b = a - a / b * b,总结规律,取余得到的数值符号与被除数相同
若a为小数,a % b = a - (int) a / b * b
温馨提示:a % b,a是被除数
-10 % 3; // -1
10 % -3; // 1
-10 % -3; // -1
2.++/--
自增符,a++和++a的区别:
a = 3;
b = a++;// 等价于b = a;a = a + 1;因此b = 3,a = 4
c = ++a;// 等价于a = a + 1;c = a;因此c = 4,a = 4
3.逻辑运算符
&(逻辑与)与&&(短路与):
在原理上没有区别,在运行中,若第一个条件为false,&&不再判断第二个逻辑运算,&要再做一次判断。因此在实际使用中用&&,效率更高。
|(逻辑或)与 ||(短路或)同理
4.异或
^ :当两个条件为一真一假时,则取真,反之取假。
5.赋值运算符
一些小细节:复合复制运算会发生类型转换
byte a = 2;
a ++;//等价于a = a + 1,但执行指令a = a + 1无法通过编译,因为1为int型,因此其实质为a = (byte) (a + 1)
a += 2;//等价于a = a + 2,但执行指令a = a + 2无法通过编译,因为2为int型,因此其实质为a = (byte) (a + 2)
6.位运算符
2&3 &按位与,同为1时取1,否则取0
因为&两侧为整型,同时在java中,不认为非零整数为真,所以在这种情况下为按位运算。
以2&3为例,运算规则为首先得到2和3的二进制补码,其次进行按位与的运算,得到结果的补码,计算得到原码,为运算结果。
~2 ~按位取反
>>算数右移:低位溢出,溢出的位置以符号位数值补充。其运算实质相当于除以2,移动几位便除几次
<<算数左移:低位补零,高位溢出但符号位不变。其运算实质相当于乘2,移动几位便乘几次
>>>无符号右移/逻辑右移:低位溢出高位补0
首先要介绍进制相关的信息:
二进制:以0b或0B开头表示
八进制:以0开头表示
十六进制:以0x或0X开头表示
进制转换:
1、其他进制转十进制:
0b001101 为1*2的0次方+0*2的1次方+1*2的2次方+1*2的3次方+0*2的4次方+0*2的5次方
其余同理
2、十进制转其他进制:
如转换为二进制,除二取余,除至所得商比进制小,商+余数倒叙排列即为结果
其余同理
3、二进制转八进制:
从低位起,每三位转换为对应的数值
4、二进制转十六进制:
从低位起,每四位转换为对应的数值
5、八进制转二进制:
从低位起,每一位转换为三位二进制
6、十二进制转二进制:
从低位起,每一位转换为四位二进制
原码、补码、反码:
原码,第一位为符号位,0表示正数,1表示负数
反码:正数的反码与原码相同,负数的反码:符号位不变,其余按位取反
补码:正数的补码与原码相同,负数的补码为反码+1
0的反码、补码均为0
注意:计算机在运算时使用补码,但是看结果时是看原码
最后
以上就是震动哈密瓜为你收集整理的Java学习笔记3——Java运算符的难点及注意事项一、算术运算符6.位运算符的全部内容,希望文章能够帮你解决Java学习笔记3——Java运算符的难点及注意事项一、算术运算符6.位运算符所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复