P1100 高低位交换 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
代码一
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
const ll N=1e5+10;
char a[N];
int main()
{
IOS;
ll a;
int b[32]={0},c[32]={0},d[32]={0};
cin>>a;
for(int i=31;i>=0;i--)
{
d[i]=a%2;
a/=2;
b[i]=d[31-i];
cout<<b[i];
}
//cout<<"here"<<endl;
for(int i=31;i>=0;i--)
{
if(i>=16 && i<=31)
{
c[i-16]=b[i];
}
else if(i>=0 && i<=15)
{
c[i+16]=b[i];
}
}
ll ans=0;
for(int i=0;i<=31;i++)
{
ans+=c[i]*pow(2,i);
}
cout<<ans<<endl;
return 0;
}
ac代码
好简洁!!
#include<bits/stdc++.h>
typedef long long ll;
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
const ll N=1e3;
using namespace std;
int main()
{
IOS;
ll x;
cin>>x;
cout<<((x&0x0000ffff)<<16|(x&0xffff0000)>>16)<<endl;
return 0;
}