转换成 long long 计算即可。
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
long long n;
void f(long long n)
{
if(n >> 32 & 1)//32 位加3最大33位,检查一下
cout << 1;
for(int i = 31; i >= 0; i--)
{
if(n >> i & 1)
cout << 1;
else
cout << 0;
}
cout << endl;
}
int main()
{
int t;
cin >> t;
while(t--)
{
string s;
cin >> s;
n = 0;
for(int i = 0; i <= 31; i++)
{
if(s[i] == '1')
{
n = n | (1l << (31 - i));//注意 1l, l不能少。
}
}
// cout << n << endl;
f(n + 1);
f(n + 3);
}
}