位运算与掩码

共 19 题
#

1. 用掩码 0xFF 提取一个 32 位整数的最低字节,写出位运算表达式?

A x ^ 0xFF
B x | 0xFF
C x & 0xFF ✓ 正确答案
D x >> 0xFF
#

2. 解释 (n & 1) 判断奇偶性的位运算原理?

A 0(偶数)
B 1(奇数) ✓ 正确答案
C 7
D 3
#

3. 解释位运算 (x ^ y) 为 0 当且仅当 x == y,结合按位异或性质?

A x != y
B x == y ✓ 正确答案
C x + y == 0
D x == 0
#

4. 把 0xCAFEBABE 与 0xFFFFFFFF 按位与,结果十六进制是?

A 0x00000001
B 0x00000000
C 0xCAFEBABE ✓ 正确答案
D 0xFFFFFFFF
#

5. 如何用位运算 (n & (n-1)) == 0 判定 2 的幂次?

A 0(是 2 的幂) ✓ 正确答案
B 64
C 1
D 63
#

6. lowbit 运算 n & (-n) 的原理与推导,12(0b1100)的 lowbit 是多少,树状数组为何依赖它?

A 4 ✓ 正确答案
B 8
C 2
D 12
#

7. 位移在序列化中的位级优化(如 Flags 字段打包到 int)的应用与可读性取舍

A 无法打包
B 提高可读性但费空间
C 省空间但降低可读性 ✓ 正确答案
D 只支持正数
#

8. 用 (n & (n-1)) 清除最低位的 1,写出对 0b10110100 运算的结果?

A 0b10110000 ✓ 正确答案
B 0b10110100
C 0b10100000
D 0b10010000
#

9. 给定 8 位 0b00001111 << 4 的结果是什么?移出最高位会怎样?

A 0b11111111
B 0b00001111
C 0b11110000 ✓ 正确答案
D 0b00000000
#

10. 给定 8 位 0b10110100 与 0b11001010,求 AND/OR/XOR 三种结果?

A 0b10110100
B 0b10000000
C 0b11111110
D 0b01111110 ✓ 正确答案
#

11. 常用位运算技巧有哪些,如 n&(n-1)、lowbit、异或交换与取反?

A 正确交换,无需临时变量 ✓ 正确答案
B a、b 变为 0
C 只能交换正数
D 丢失数据
#

12. 位图与布隆过滤器如何实现海量数据的去重与判断?

A 一定不存在
B 一定存在
C 可能存在(可能有误报) ✓ 正确答案
D 无法判断
#

13. 生成 n 位全 1 掩码 (1 << n) - 1 时,n=32 直接 1<<32 是未定义行为,工程上如何安全构造?

A 0x7FFFFFFF
B 1 << 32
C 1 << 31
D ~0U ✓ 正确答案
#

14. 位运算实现绝对值 abs(x) = (x ^ (x>>31)) - (x>>31),解释对正数、负数与 INT_MIN 的分别行为?

A 正确得到正数
B 溢出,仍为 INT_MIN ✓ 正确答案
C 得到 0
D 得到 INT_MAX
#

15. 解释为何负数右移在 C 中是 implementation-defined?

A implementation-defined ✓ 正确答案
B 总是算术右移
C 总是逻辑右移
D 未定义行为
#

16. 位掩码与标志位中,如何用位域压缩多个布尔状态?

A 无法读取
B 增加内存
C 节省内存 ✓ 正确答案
D 只能存一个
#

17. 字节序(大小端)中,网络序与主机序如何转换?

A 无规定
B 小端(LE)
C 混合序
D 大端(BE) ✓ 正确答案
#

18. 位运算在权限管理中的应用,位掩码如何与权限组合?

A perm | READ ✓ 正确答案
B perm & READ
C perm ^ READ
D perm ~ READ
#

19. Brian Kernighan 位计数与 POPCNT 指令统计 1 的个数分别是 O(k) 与 O(1),何时应使用硬件指令?

A O(n log n)
B O(k) 其中 k 为 1 的个数
C O(n)
D O(1) 常数时间 ✓ 正确答案