【题目描述】
给出一个小于2^32的正整数。这个数可以用一个32位的二进制数表示(不足32位用0补足)。我们称这个二进制数的前16位为“高位”,后16位为“低位”。将它的高低位交换,我们可以得到一个新的数。试问这个新的数是多少(用十进制表示)。
【输入输出样例】
输入:1;输出:65536
【解题技巧】
套用 (n >> 16) + (n << 16)左移右移,最后输出。
【源代码】
#include<bits/stdc++.h>
#include<iostream>
#include<cstdio>
#include<cstring>
#include<iomanip>
#include<cmath>
#include<algorithm>
#include<vector>
#include<map>
#include<set>
#include<queue>
using namespace std;
int n;
int main(){
scanf("%u", &n); // 注意读入的方法.
printf("%u\n", (n >> 16) + (n << 16)); // 左移右移
return 0;
}
//♂_The_LYH_25_♂