Bit Manipulation 总结
面试中经常会用到位操作,这里把Cracking the Coding Interview里讲到的常用的位操作整理一下,加上一些其他的常用的位操作
Get Bit
|
|
Set Bit
|
|
Clear Bit
|
|
Update Bit
|
|
n & (n - 1) 常见用法
求一个数的二进制中1的个数
191. Number of 1 Bits12345678public int hammingWeight(int n) {int count = 0;while(n != 0) {count++;n = n & (n - 1);}return count;}判断一个数是否是2的指数
231. Power of Two123public boolean isPowerOfTwo(int n) {return (n > 0) && (n & (n - 1)) == 0;}计算n!的质因数2的个数
异或xor的妙用
未完待续