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;
}