我似乎卡出了一个神奇的bug(也可能是UB)
  • 板块学术版
  • 楼主CC__DIAMOND
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/4/10 22:43
  • 上次更新2024/4/11 13:25:41
查看原帖
我似乎卡出了一个神奇的bug(也可能是UB)
636977
CC__DIAMOND楼主2024/4/10 22:43

核心代码如下

#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() {
//    ios::sync_with_stdio(false);
//    cin.tie(nullptr);
    int T;
    cin >> T;
    while (T--)solve();
    return 0;
}

如果输入的x特别大(x>=1e18),cin有概率抽风不断输出随机数字。这是bug吗?还是UB?

2024/4/10 22:43
加载中...