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;
}
浙公网安备 33010602011771号