不得不说。我的位操作真的不是很好。碰到位操作的题目就不会。注定不能做硬件程序员。。
思路:(是看了别人的代码才有的思路,不然我就用循环做了)
其实从m到n。。。我们可以想象,只有m和n的二进制公共前缀起作用。因为从m到n。公共前缀后面的每一位都会出现0.这样与出来的结果就是0.所以我们只要找到m,n的二进制公共前缀就好。
public class Solution {
public int rangeBitwiseAnd(int m, int n) {
int bitmove=0;
while(m!=n)
{
m>>=1;
n>>=1;
bitmove++;
}
return n<<bitmove;
}
}
本文深入探讨了位操作的基础知识及应用,通过实例解析如何利用位操作解决编程问题,特别强调了公共前缀在位运算中的重要性,并提供了一个高效的算法实现。适合编程初学者及进阶者学习。
294

被折叠的 条评论
为什么被折叠?



