#5855. 位运算专项练习2
位运算专项练习2
单选题(15道)
- 表达式 0b1100 & 0b1010 的结果是:{{ select(1) }}
- 0b1000
- 0b1110
- 0b0110
- 0b1010
- 在8位补码表示下,表达式 ~3 的结果是:{{ select(2) }}
- 252
- -4
- 124
- -124
- 表达式 0b1101 | 0b0110 的结果是:{{ select(3) }}
- 0b1011
- 0b1111
- 0b1001
- 0b0101
- 表达式 0b1010 ^ 0b1100 的结果是:{{ select(4) }}
- 0b0110
- 0b1000
- 0b1110
- 0b0010
- 在8位补码表示下,表达式 -8 >> 2 的结果是:{{ select(5) }}
- -2
- 62
- 2
- -4
- 表达式 7 << 3 的结果是:{{ select(6) }}
- 21
- 56
- 14
- 28
- 以下哪个表达式可以判断一个整数x的最低有效位是否为1?{{ select(7) }}
- x | 1
- x & 1
- x ^ 1
- ~x & 1
- 表达式 0x3F & 0xA5 的结果是:{{ select(8) }}
- 0x25
- 0xBF
- 0x3F
- 0xA5
- 在8位补码表示下,表达式 ~1 的结果是:{{ select(9) }}
- 254
- -2
- 126
- -126
- 表达式 (1 << 4) | (1 << 1) 的结果是:{{ select(10) }}
- 5
- 16
- 18
- 10
- 以下哪个表达式可以将变量x的第3位(从0开始计数)设置为1?{{ select(11) }}
- x | (1 << 3)
- x & (1 << 3)
- x ^ (1 << 3)
- x & ~(1 << 3)
- 在8位补码表示下,表达式 -64 << 1 的结果是:{{ select(12) }}
- -128
- 128
- 0
- -32
- 表达式 (0x55 ^ 0x33) & 0x0F 的结果是:{{ select(13) }}
- 0x66
- 0x06
- 0x0F
- 0x00
- 以下哪个表达式可以判断整数x是否是2的幂?{{ select(14) }}
- x & (x - 1) == 0
- x | (x - 1) == 0
- x ^ (x - 1) == 0
- ~x & (x - 1) == 0
- 在8位补码表示下,表达式 -1 ^ 0x7F 的结果是:{{ select(15) }}
- 0x80
- 0x7E
- 0xFE
- -128
判断题(10道)
- 在C++中,表达式 x >> 1 等价于 x / 2 对于正整数总是成立。{{ select(16) }}
- 正确
- 错误
- 表达式 x & ~(1 << n) 可以将变量x的第n位清零。{{ select(17) }}
- 正确
- 错误
- 在8位补码表示下,左移操作 << 对于负数总是进行逻辑左移(低位补0)。{{ select(18) }}
- 正确
- 错误
- 表达式 x ^ y ^ x 的结果总是等于y。{{ select(19) }}
- 正确
- 错误
- 对于任何整数x,表达式 (x & -x) == x 可以判断x是否是2的幂。{{ select(20) }}
- 正确
- 错误
- 在8位补码表示下,表达式 127 << 1 的结果是-2。{{ select(21) }}
- 正确
- 错误
- 表达式 x | ~x 的结果总是全1的位模式。{{ select(22) }}
- 正确
- 错误
- 对于正整数x,表达式 (x + (x & -x)) 可以得到x的下一个更大的2的幂。{{ select(23) }}
- 正确
- 错误
- 在8位补码表示下,表达式 ~0 << 2 的结果是-4。{{ select(24) }}
- 正确
- 错误
- 表达式 (x ^ y) == ((x | y) & ~(x & y)) 总是成立。{{ select(25) }}
- 正确
- 错误