核心代码如下
#include <bits/stdc++.h>
#define BAR cout<<"*******\n";
#define fst first
#define snd second
#define INFILE(x) freopen(x,"r",stdin)
#define OUTFILE(x) freopen(x,"w",stdout)
#define INF 0x3f3f3f3f
#define INFL 0x3f3f3f3f3f3f3f3f
using namespace std;
using ll = long long;
using ul = unsigned long long;
using ui = unsigned int;
using db = double;
ul high_bit(ul x){
return 1l<<(63 - __builtin_clz(x));
}
void solve() {
ul x;
cin >> x;
cout<<high_bit(x);
}
int main() {
int T;
cin >> T;
while (T--)solve();
return 0;
}
如果输入的x特别大(x>=1e18),cin有概率抽风不断输出随机数字。这是bug吗?还是UB?