3059: 【普及-】【P1100】高低位交换

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:8 解决:2

题目描述

给出一个小于 lns="http://www.w3.org/1998/Math/MathML">232 的非负整数。这个数可以用一个 lns="http://www.w3.org/1998/Math/MathML">32 位的二进制数表示(不足 lns="http://www.w3.org/1998/Math/MathML">32 位用 lns="http://www.w3.org/1998/Math/MathML">0 补足)。我们称这个二进制数的前 lns="http://www.w3.org/1998/Math/MathML">16 位为“高位”,后 lns="http://www.w3.org/1998/Math/MathML">16 位为“低位”。将它的高低位交换,我们可以得到一个新的数。试问这个新的数是多少(用十进制表示)。

例如,数 lns="http://www.w3.org/1998/Math/MathML">1314520 用二进制表示为 lns="http://www.w3.org/1998/Math/MathML">00000000000101000000111011011000(添加了 lns="http://www.w3.org/1998/Math/MathML">11 个前导 lns="http://www.w3.org/1998/Math/MathML">0 补足为 lns="http://www.w3.org/1998/Math/MathML">32 位),其中前 lns="http://www.w3.org/1998/Math/MathML">16 位为高位,即 lns="http://www.w3.org/1998/Math/MathML">0000000000010100;后 lns="http://www.w3.org/1998/Math/MathML">16 位为低位,即 lns="http://www.w3.org/1998/Math/MathML">0000111011011000。将它的高低位进行交换,我们得到了一个新的二进制数 lns="http://www.w3.org/1998/Math/MathML">00001110110110000000000000010100。它即是十进制的 lns="http://www.w3.org/1998/Math/MathML">249036820

输入

一个小于 lns="http://www.w3.org/1998/Math/MathML">232 的非负整数

输出

将新的数输出

样例输入 复制

1314520

样例输出 复制

249036820

提示

#include<bits/stdc++.h>
using namespace std;
unsigned int n,num1,num2;
int main(){
    cin>>n;
    num1=(n<<16);
    num2=(n>>16);
    cout<<(num1|num2);
    return 0;
}