2 solutions
-
1
#include <bits/stdc++.h> using namespace std; long long num[40], mun[40]; long long n, ans = 0; int main() { cin >> n; for(int i = 32;i >= 1;i--)//细节倒序 { num[i] = n%2;//数组模拟二进制 n/=2; } for(int i = 1;i <= 16;i++) { mun[i] = num[i+16]; } for(int i = 17;i <= 32;i++) { mun[i] = num[i-16]; } for(int i = 1;i <= 32;i++) { ans += pow(2, 32-i)*mun[i];//mun[i]只有1或0 } cout << ans; return 0; } /* //位运算 #include<bits/stdc++.h> using namespace std; int main() { unsigned int n; cin>>n; unsigned int x, y; y=n>>16; x=n<<16; cout << x; cout << y; return 0; } */
- 1
Information
- ID
- 193
- Time
- 1000ms
- Memory
- 64MiB
- Difficulty
- 6
- Tags
- # Submissions
- 57
- Accepted
- 18
- Uploaded By