#30. 程序阅读(进制与位运算篇)
程序阅读(进制与位运算篇)
一
1 #include <bits/stdc++.h>
2 using namespace std;
3 int x, y;
4 unsigned int n;
5 int main() {
6 cin >> n >> x >> y;
7 unsigned int mask = 0xff;
8 int x8 = x << 3;
9 int y8 = y << 3;
10 unsigned int nx = (n >> x8) & mask, ny = (n >> y8) & mask;
11 n &= (~(mask << x8));
12 n &= (~(mask << y8));
13 n |= (nx << y8);
14 n |= (ny << x8);
15 cout << "0x";
16 cout << std::hex << n << endl;
17 return 0;
18 }
假设输入的 是 位无符号整数范围内的整数, 是不超过 的自然数,完成下面的判断题和单选题。
判断题
- 代码中
mask变量的值转化为二进制的低 位结果是 ()。 {{ select(1) }}
TF
- 当输入 的时候, 表示 中最低八位对应的字节的数据。( ) {{ select(2) }}
TF
- 去掉程序第 行至第 行中
(~(mask << x8))和(~(mask << y8))两处中的最内层 括号不会改变程序的结果。( ) {{ select(3) }}
TF
- 当输入为
15078 0 1时,变量 的值分别为多少?( ) (提示:十进制数 与十六进制数 相同) {{ select(4) }}
- 当输入为
23270 0 1时,输出为多少?( ) (提示:十进制数 与十六进制数 相同) {{ select(5) }}
- 以下哪一个变量的类型修改可能影响程序的输出?( ) {{ select(6) }}
- 将 修改为
unsigned int类型。 - 将 修改为
short类型。 - 将 修改为
int类型。 - 将 修改为
unsigned long long类型。