昨天同学过生日,大家一起出去热闹了。今天的收获不是很多。我每天push出来的知识点是比较零碎的,主要是我自身不是很熟悉的一些知识点。
常见的位运算符:
^(异或)的特点:一个数据对另一个数据异或两次,该数本身不变
交换2个变量的值的几种方法:
方式1:使用第三方变量(开发中经常用的)
int c=a;
a=b;
b=c;
方式2:根据上文中异或的特点实现(面试用)
左边:a,b,a
右边:a^b
a=a^b;
b=a^b;//b=a^b^b=a
a=a^b;//a=a^b^a=b
方式3:用变量相加的做法
a=a+b;
b=a-b;
a=a-b;//跟上一步不能调换位置
方式4:b=(a+b)-(a=b);
<<:左移 左边最高位丢弃,右边补齐0
>>:右移 最高位是0,左边补0;最高位是1,左边补齐1
面试题:
请你用最有效率的方法写出计算2乘以8(即2*8)的结果?
答:2<<3
生命不止,奋斗不息!