位运算玄学
  • 板块灌水区
  • 楼主Ethan812820
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/5/26 10:56
  • 上次更新2024/5/26 12:47:05
查看原帖
位运算玄学
1112010
Ethan812820楼主2024/5/26 10:56
#include<bits/stdc++.h>
#define ull unsigned long long
using namespace std;
signed main(){
	ull k=64;
	long long k2=64;
	int k3=64;
    __int128 a=1ull<<k;
    __int128 b=1ll<<k2;
    __int128 c=1<<k3;
    __int128 d=1ull<<64ull;
    __int128 e=1ll<<64ll;
    __int128 f=1<<64;
    cout<<(ull)a-2<<" "<<(ull)b-2<<" "<<(ull)c-2<<" "<<(ull)d-2<<" "<<(ull)e-2<<" "<<(ull)f-2;
    return 0;
}

正确输出应该是6个2^64-2,我的输出前三个是2^64-1,后三个是2^64-2,为啥?

2024/5/26 10:56
加载中...