1.Java运算符
操作数的数目分类
单目 双目 三目
按照运算符的功能
算术运算 + - * / % ++ --
赋值运算
= += -= *= /= %=
关系运算(比较)
> >= < <= != == (对象 instanceof 类
逻辑运算
逻辑运算符前后连接的两个都是boolean的值
&逻辑与 | 逻辑或 ^逻辑异或 !逻辑非
&&短路与 (前面为false就直接为false)
||短路或
2.进制转化问题?
如何将十进制—>二进制
60十进制—>32个0或1来表示60 60除以2取余数 将余数倒叙排列 即为有效位
00000000 00000000 00000000 00111100
如何将二进制—>十进制
从右至左开始计算 每一个元素乘以2的位置(0开始)次幂 最终求和
每三个bit记录为一个小组–>小组长名字(3个bit计算成十进制)
00000000 000 000 000 000 000 000 111 100
0 7 4
3.位(bit)运算
&按位与 | 按位或 ^按位异或 ~按位取反
<<按位左位移 >>按位右位移 >>>按位右位移(无符号)
>>保留符号位置 1 填1
>>> 不保留符号 不管是什么 都填0
3 ^ 5 = ?
1.将3和5转化成二进制表示形式
2.竖着按照对应位置进行 & | ^计算 (1–>true 0–>false)
3.将计算后的二进制结果转化为十进制
00000011
00000101
00000110–>6
4原码 反码 补码 相互转化
原码 反码 补码 二进制表示数字
6 -6
原码:00000000 00000000 00000000 00000110 10000000 00000000 00000000 00000110
反码:00000000 00000000 00000000 00000110 11111111 11111111 11111111 11111001 符号不动 其余取反
补码:00000000 00000000 00000000 00000110 11111111 11111111 11111111 11111010 反码+1
计算机中不管是整数还是负数 存储的形式都是以补码形式来存储
注意 反码是一种表示形式 取反是一个计算过程(每一个位置都取反)