#BITOBJ01. 位运算基础选择填空专项练习(20题)
位运算基础选择填空专项练习(20题)
位运算基础选择填空专项练习(20题)
说明
本题共 20 小题,每题 5 分,共 100 分。
- 第 1~12 题为单项选择题;
- 第 13~20 题为填空题;
- 所有右移均针对非负整数;
- 二进制位从右向左编号为第
0位、第1位、第2位……
一、单项选择题
1. 表达式 13 & 10 的值是( )。
{{ select(1) }}
- 2
- 8
- 11
- 15
2. 表达式 12 | 5 的值是( )。
{{ select(2) }}
- 5
- 9
- 13
- 15
3. 表达式 9 ^ 14 的值是( )。
{{ select(3) }}
- 5
- 6
- 7
- 15
4. 对任意整数 x,表达式 x ^ x 的值一定是( )。
{{ select(4) }}
- 0
- 1
- x
- -1
5. 在固定的 8 位二进制中,~00010110 的结果是( )。
{{ select(5) }}
- 00010111
- 11101001
- 11110110
- 00001001
6. 表达式 5 << 2 的值是( )。
{{ select(6) }}
- 10
- 15
- 20
- 25
7. 表达式 40 >> 3 的值是( )。
{{ select(7) }}
- 3
- 5
- 8
- 20
8. 判断非负整数 n 是否为奇数,最合适的位运算表达式是( )。
{{ select(8) }}
n & 1n | 1n ^ 1n << 1
9. 将正整数 n 的二进制表示中最低位的一个 1 消去,应使用( )。
{{ select(9) }}
n | (n - 1)n ^ (n - 1)n & (n - 1)n & (n + 1)
10. 判断正整数 n 是否为 2 的整数次幂,正确条件是( )。
{{ select(10) }}
n > 0 && (n & (n - 1)) == 0n > 0 && (n | (n - 1)) == 0(n & 1) == 1(n ^ (n - 1)) == 0
11. 将整数 x 的第 k 位设置为 1,应使用( )。
{{ select(11) }}
x & (1 << k)x | (1 << k)x ^ ~(1 << k)x >> k
12. 将整数 x 的第 k 位清零,其他位保持不变,应使用( )。
{{ select(12) }}
x | ~(1 << k)x ^ (1 << k)x & ~(1 << k)x << k
二、填空题
13. 计算 23 & 15。
答案:{{ input(13) }}
14. 计算 18 | 9。
答案:{{ input(14) }}
15. 计算 25 ^ 12。
答案:{{ input(15) }}
16. 计算 7 << 3。
答案:{{ input(16) }}
17. 计算 96 >> 4。
答案:{{ input(17) }}
18. 执行下面代码后,x 的值是多少?
int x = 10;
x = (x << 1) ^ 3;
答案:{{ input(18) }}
19. 初始时 x = 44,连续执行两次 x &= x - 1,最终 x 的值是多少?
答案:{{ input(19) }}
20. 执行下面代码后,cnt 的值是多少?
int x = 45;
int cnt = 0;
while (x) {
x &= x - 1;
cnt++;
}
答案:{{ input(20) }}
粤公网安备44195502000195号