洛谷题单指南-数学基础问题-P1100 高低位交换
原题链接:https://www.luogu.com.cn/problem/P1100
题意解读:将32位二进制数的高低16位交换位置。
解题思路:
给定无符号整数a,假设二进制高16为h,低16位为l, 即a表示为hl,a >> 16得到0h,a << 16得到l0,两者相加即得到lh,交换完毕。
需要注意的是,无符号整数的表示是unsigned int,如果是int,将可能导致出现负数,不符合题意。
100分代码:
#include <bits/stdc++.h>
using namespace std;
unsigned int a;
int main()
{
cin >> a;
cout << (a << 16) + (a >> 16);
}
浙公网安备 33010602011771号