#2942. 【位运算】星火高低位交换

    ID: 2942 传统题 1000ms 128MiB 尝试: 3 已通过: 2 难度: 10 上传者: 标签>改编自PPT课件《计算机基础知识:位运算》高低位交换(洛谷P1100)

【位运算】星火高低位交换

说明

在"星火征途"的加密通信中,红军使用了一种"高低位交换"的加密方法。 给定一个无符号整数n(32位二进制表示),将其二进制表示的前16位(高16位)与后16位(低16位)交换位置,得到一个新的无符号整数,并输出。 例如:1314520的二进制表示为: 0000 0000 0001 0100 0000 1110 1101 1000 交换高低16位后得到: 0000 1110 1101 1000 0000 0000 0001 0100 即 249036820。

输入格式

输入共1行,一个无符号整数n。

输出格式

输出共1行,交换高低16位后的结果。
1314520
249036820

提示

对于所有数据,n ≤ 2^32-1。思路:将n左移16位取低16位,右移16位取高16位,然后合并。注意使用unsigned int。

来源

改编自PPT课件《计算机基础知识:位运算》高低位交换(洛谷P1100)