在面试过程中咱们经常会被问一些算法相干问题。如果能够应用位运算解决。给面试官的印象分肯定很高。还等什么学起来;以下都是在刷题的时候罕用的位运算。
鸡汤:他人能够做到的,凭什么你做不到?
& 运算
- 全是 1 才是 1 否则为零;
- 作用:1. 判断奇偶性 (n&1==1 奇数) 2. 去除最初一位的 1;n&(n-1)
^ 运算
- 雷同为 0,不同为 1;次要性质 a^0=a a^a=0
- 作用:1. 替换两个数,a^=b;b^=a;a^=b; 这样就在不引入第三方变量的时候进行替换,试想如果在面试的时候做两个数的替换你写出的试着放办法面试官如何看你。(这小王八蛋必定背过题 qaq)2. 其次这个性质还能够用来加密。a^salt 失去一个密文 x;x^salt 就能够失去加密前的明文;3. 判断两个数是否相等 a^b ==0
>> 右移 << 左移
- 右移 >> 相当于除 2;左移 << 相当于乘 2
- 作用:1. 在书写二分算法的时候后应用。2. 在 hashmap 中容量是 2 的整数倍起因就是它里边用的是位运算。
~ 非
- 作用:1. 取正数 ~a+1