题解
【基础】二进制折半交换
1 条题解
-
0
#include<bits/stdc++.h> using namespace std; string s,c; long long p=1,o=0; int main(){ long long n; cin>>n; while(n!=0){ s=char('0'+n%2)+s; n=n/2; } if(s=="")s="0"; if(s.size()<32){ for(int l=s.size(); l<32; l++)s='0'+s; } c=s.substr(0,16); c=s.substr(16,16)+c; for(int l=c.size()-1; l>=0; l--){ o=o+(c[l]-'0')*p; p=p*2; } cout<<o; }
- 1