Problem B: [CSP-S1][选择] 位运算1
Description
1. 在C++中,表达式 (15 ^ 9) & 12 的值是( )。
A. 4
B. 8
C. 12
D. 0
2. 若 x 是一个整数,下列哪个表达式可以判断 x 的二进制表示中最低位是否为1?( )
A. x % 2 == 0
B. x & 1
C. x >> 1
D. x | 1
3. 以下代码的输出是( )。
int a = 10; // 二进制 1010
int b = 6; // 二进制 0110
cout << (a | b);
A. 4
B. 14
C. 12
D. 8
4. 下列哪个操作可以将整数 n 的最右侧的1变为0?( )
A. n ^ (n - 1)
B. n & (n - 1)
C. n | (n - 1)
D. n << 1
5. 表达式 (1 << 3) - 1 的二进制结果是( )。
A. 00000111
B. 00001000
C. 00001111
D. 00000110
6. 若 x = 0x0F(十六进制),则 x & ~0x03 的结果是( )。
A. 0x0C
B. 0x0F
C. 0x03
D. 0x00
7. 以下代码的功能是( )。
int count = 0;
while (n) {
count++;
n &= (n - 1);
}
A. 计算 n 的二进制中0的个数
B. 计算 n 的二进制中1的个数
C. 将 n 的最低位翻转
D. 判断 n 是否为2的幂
8. 两个整数 a 和 b 的汉明距离是指其二进制表示中不同位的数量。若 a = 9(1001),b = 12(1100),则汉明距离是( )。
A. 1
B. 2
C. 3
D. 4
9. 以下哪个表达式可以提取整数 n 的最右侧的1(Lowbit)?( )
A. n & (-n)
B. n | (~n)
C. n ^ (n - 1)
D. n << 1
10. 表达式 (0xAA & 0x55) | (0xAA ^ 0x55) 的结果是( )。
A. 0x00
B. 0xFF
C. 0xAA
D. 0x55
Sample Input Copy
Sample Output Copy