1.位运算符操作的都是整型数据
2.<<: 在一定范围内,每向左移1位,相当于*2
>>: 在一定范围内,每向左移1位,相当于/2
超出范围可能为负数
面试题 最高效的计算2*8? 2<<3 8<<1
3.>>>后面学集合 哈希值的时候会用到
4.& | ^ 在分支结构中做判断的时候两边都是布尔型所以结果也是布尔型
但是在整型数字运算时是针对二进制来操作 0&1为0 ;1|0为1;^表示异或
5.~取反码
6.练习:交换两个变量的值
可以类比于交换水和雪碧来做
int t=num1;
num1=num2;
num2=t; 这个方法好
可以类比甲乙在两个孤岛上交换位置跳来跳去即加减
num1=num1+num2;
num2=num1-num2;
num1=num1-num2; 缺点是相加操作可能超出存储范围,只能用于数值型类型
使用位运算符的方法
num1=num1^num2;
num2=num1^num2;
num1=num1^num2;
7.三元运算符
结构: (条件表达式)?表达式1:表达式2
为真执行1,为假执行2
表达式1和2虽然不要求是同一个类型,但是需要是可以转化为一个类型的,例如2:1.0是可以的,因为他们都能转化为double型