免責事項:この記事はブロガーオリジナル記事ですが、許可ブロガーなく再生してはなりません。https://blog.csdn.net/gjh13/article/details/90733575
この方法の一つ:
問題解決のアイデア:
この問題は、実際には、共通部分の前に32ビットの2進数mとnは、ゼロで埋め戻しを見つけることです。後者の位置では、M <= K <= N、特定の数kが存在しなければならないので、32ビットのバイナリ数kはその位置で0である場合、ビット単位で行われ、それは、0です。
class Solution {
public:
int rangeBitwiseAnd(int m, int n) {
int tmp = 0;
while(m != n){
m = m >> 1;
n = n >> 1;
tmp++;
}
return m << tmp;
}
};