1 条题解
-
0
题解:交换32位整数的高低半区
思路
N & 0xFFFFu取出低 位,再左移 位;N >> 16取出高 位;- 两部分按位或合并。
公式:
ans = ((N & 0xFFFFu) << 16) | (N >> 16);必须使用无符号 位整数,避免符号位和右移规则干扰结果。
复杂度
时间复杂度 ,空间复杂度 。
参考代码
#include <bits/stdc++.h> using namespace std; int main() { uint32_t n; cin >> n; uint32_t ans = ((n & 0xFFFFu) << 16) | (n >> 16); cout << ans << "\n"; return 0; }
信息
- ID
- 5116
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 9
- 标签
- 递交数
- 13
- 已通过
- 4
- 上传者
粤公网安备44195502000195号