洛谷题单指南-数学基础问题-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);
}

 

posted @ 2024-04-07 10:25  hackerchef  阅读(50)  评论(0)    收藏  举报