下面程序执行的结果是( )。
#include <iostream>
using namespace std;
int main() {
int x = 2026;
int count = 0;
while (x > 0) {
count++;
x = x & (x - 1);
}
cout << count << endl;
}见 x & (x-1) → 数二进制 1 的个数
误以为每次 x 减半(得 16);误以为循环次数等于初值(得 2026);混淆按位与与减法借位影响。
考点:二进制位运算|x & (x-1) 特性
循环次数等于 2026 二进制中 1 的个数。