P1100 高低位交换
前置知识详情见————————
0xffff0000
1.十六进制数 (f)16 = (16)10 = (1111)2
2.16进制的一位 = 2进制的四位
故将16进制数0xffff0000转为2进制数有8*4 = 32位
0xffff0000 = 1111 1111 1111 1111 0000 0000 0000 0000

1.左移运算符(<<)
a = a << n 将 a 的二进制位左移n位、右补0
2.右移运算符(>>)
a = a >> n 将 a 的二进制位右移n位、左补0

题解:左移16位|右移16位

点击查看代码
#include<cstdio>
#include<iostream>
using namespace std;
int main()
{
    unsigned long long a;
    cin >> a;
    a = (a & 0x0000ffff) << 16 | (a & 0xffff0000) >> 16;
    cout << a;
}
posted on 2025-12-03 17:41  一方见地  阅读(0)  评论(0)    收藏  举报