最简单二进制位枚举
作者:
xianhai
,
2022-02-19 16:04:36
,
所有人可见
,
阅读 227
相关题
3551. 二进制数字翻转
#include <iostream>
using namespace std;
int main() {
int T;
cin >> T;
while (T--) {
unsigned int x, res = 0, s = 1 << 31; // 定义无符号整数
// cout << s << endl;
cin >> x;
// 二进制位枚举
for (int i = 0; i < 32; i++) {
if (x >> i & 1) {
res += s; // 如果二进制位为1,加上s
}
s >>= 1; // s除以2
}
cout << res << endl;
}
return 0;
}
/*
2147483648
10000000000000000000000000000000
00000000000000000000000000000010 2
01000000000000000000000000000000 1073741824
*/
3483. 2的幂次方 讲解
3646. 分水果 讲解