举个例子
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ll ans = -1;
ans += pow(2,63);
printf("%lld\n", ans);//9223372036854775807
ans = -1;
ans += (1LL<<63);
printf("%lld\n", ans);//9223372036854775807
ans = -1;
ans += (1<<63);
printf("%lld\n", ans);//-1
return 0;
}
我们可以看到同样是加上263 如果用位移运算符,1后面没有加LL,那会得出一个错误的答案(-1)。
在得到的结果会爆int的时候,记得用LL