1 条题解
-
0
位运算基础选择填空专项练习:答案与解析
答案总览
题号 1 2 3 4 5 6 7 8 9 10 答案 B C A B C B A C A 题号 11 12 13 14 15 16 17 18 19 20 答案 B C 7 27 21 56 6 23 32 4 逐题解析
1.
13 & 10 = 813 = 1101₂,10 = 1010₂。按位与要求对应位都为1才得到1:1101 1010 ---- 10001000₂ = 8。2.
12 | 5 = 1312 = 1100₂,5 = 0101₂。按位或只要有一个位置为1,结果就为1,得到1101₂ = 13。3.
9 ^ 14 = 79 = 1001₂,14 = 1110₂。异或在两个位不同时得到1,得到0111₂ = 7。4.
x ^ x = 0相同的二进制位异或结果为
0,因此一个数与自己异或,所有位都会变成0。5.
~00010110 = 11101001按位取反会将每一位的
0与1互换。本题固定为 8 位,所以答案为11101001。6.
5 << 2 = 20左移 2 位相当于乘以 :
5 × 4 = 20。7.
40 >> 3 = 5对非负整数,右移 3 位相当于整除 :
40 ÷ 8 = 5。8. 判断奇偶:
n & 1二进制最低位为
1时是奇数,为0时是偶数,因此可检查n & 1。9. 消去最低位的一个
1:n & (n - 1)n - 1会把最低位的1变为0,并改变它右侧的位;再与原数按位与,恰好消去最低位的一个1。10. 判断 2 的整数次幂
2 的整数次幂的二进制表示中只有一个
1。消去最低位的一个1后应变为0,同时必须保证n > 0。11. 设置第
k位:x | (1 << k)1 << k只有第k位是1。与x按位或后,该位一定变成1,其他位不变。12. 清零第
k位:x & ~(1 << k)~(1 << k)只有第k位是0,其他位都是1。与x按位与后,第k位被清零,其他位保留。13.
23 & 15 = 723 = 10111₂,15 = 01111₂,按位与得到00111₂ = 7。14.
18 | 9 = 2718 = 10010₂,9 = 01001₂,按位或得到11011₂ = 27。15.
25 ^ 12 = 2125 = 11001₂,12 = 01100₂,按位异或得到10101₂ = 21。16.
7 << 3 = 56左移 3 位相当于乘以 :
7 × 8 = 56。17.
96 >> 4 = 6右移 4 位相当于整除 :
96 ÷ 16 = 6。18. 最终
x = 2310 << 1 = 20,再计算20 ^ 3:10100 00011 ----- 1011110111₂ = 23。19. 最终
x = 32每次
x &= x - 1消去最低位的一个1:44 = 101100₂ 第一次后:101000₂ = 40 第二次后:100000₂ = 3220. 最终
cnt = 4循环每执行一次就消去
x中最低位的一个1。45 = 101101₂中共有 4 个1,所以循环执行 4 次。
信息
- ID
- 5117
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- 递交数
- 38
- 已通过
- 7
- 上传者
粤公网安备44195502000195号