#5220. 高低位交换

高低位交换

高低位交换

题目描述

给定一个小于 2322^{32} 的非负整数 xx。

把 xx 看成一个 32 位无符号二进制数(不足 32 位时在前面补 0)。

其中:

  • 前 16 位称为 高 16 位;
  • 后 16 位称为 低 16 位。

现在把高 16 位和低 16 位交换位置,得到一个新的 32 位无符号整数。

请输出交换后的十进制结果。

例如:

1314520 的 32 位二进制表示为:

0000000000010100 0000111011011000

交换高 16 位和低 16 位后:

0000111011011000 0000000000010100

对应的十进制结果为 249036820。

输入格式

输入一个非负整数 xx,满足:

0 <= x < 2^32

输出格式

输出高 16 位与低 16 位交换后的十进制整数。

样例

输入

1314520

输出

249036820

提示

可以思考下面三个问题:

  1. 如何取出最低的 16 位?
  2. 如何取出最高的 16 位?
  3. 如何把两部分重新拼接起来?