- 执行语句
int a = 5 & 3; 后,变量 a 的值是({{ select(1) }})。
- 执行语句
int a = 12 | 9; 后,变量 a 的值是({{ select(2) }})。
- 执行语句
int a = 10 ^ 6; 后,变量 a 的值是({{ select(3) }})。
- 对于任意整数
x,表达式 x ^ x 的值总是({{ select(4) }})。
- 在标准 C++ 中(假设整型变量占用4字节,采用补码存储),
~1 的计算结果是({{ select(5) }})。
- 表达式
8 >> 2 的值是({{ select(6) }})。
- 表达式
3 << 3 的值是({{ select(7) }})。
- 若有
int x = -4;,执行 x >> 1 后(假设编译器采用算术右移,高位补符号位),其结果为({{ select(8) }})。
- 下列哪个位运算表达式可以用来准确判断一个整数
n 是否为奇数?({{ select(9) }})
- (n & 1) == 1
- (n | 1) == 1
- (n ^ 1) == 1
- (n >> 1) == 1
- 想要将一个 8 位整数
x 的低 4 位清零,高 4 位保持不变,应该使用哪种操作?({{ select(10) }})
- x = x & 0xF0
- x = x | 0xF0
- x = x ^ 0xF0
- x = x >> 4
- 想要将一个整数
x 的第 3 位(从低位到高位,最右侧记为第 0 位)设为 1,其他位保持不变,正确的表达式是({{ select(11) }})。
- x = x | (1 << 3)
- x = x & (1 << 3)
- x = x ^ (1 << 3)
- x = x | 3
- 表达式
(5 | 3) & 4 的执行结果是({{ select(12) }})。
- 交换两个整型变量
a 和 b 的值,下列哪组位运算操作序列可以正确实现?({{ select(13) }})
a = a ^ b; b = a ^ b; a = a ^ b;
a = a & b; b = a | b; a = a ^ b;
b = a ^ b; a = a ^ b; b = a ^ b;
- A 和 C 都可以
- 表达式
~(-1) 的执行结果是({{ select(14) }})。
- 表达式
(unsigned int)1 >> 1 的执行结果是({{ select(15) }})。
- 在 C++ 语言中,
&& 是按位与运算符,而 & 是逻辑与运算符。({{ select(16) }})
- 表达式
5 | 5 的按位或计算结果依然是 5。({{ select(17) }})
- 表达式
3 ^ 0 的按位异或结果是 3。({{ select(18) }})
- 对一个任意的 32 位整型变量
x 执行按位取反操作 ~x,其结果在数值上等价于 -x - 1。({{ select(19) }})
- 执行表达式
5 << 1 相当于将十进制数 5 乘以 2 的 1 次幂。({{ select(20) }})
- 执行表达式
7 >> 1 在 C++ 整型运算中的结果是浮点数 3.5。({{ select(21) }})
- 表达式
(x & 1) == 0 可以作为判断一个整数 x 是否为偶数的准确条件。({{ select(22) }})
- C++ 语言中,位运算符(如
&、|、^)的运算优先级通常高于算术运算符(如 +、-)。({{ select(23) }})
- 表达式
1 << 3 的计算结果是 8。({{ select(24) }})
- 按位异或运算符
^ 满足交换律,即对于任意整型变量,a ^ b 严格等于 b ^ a。({{ select(25) }})
- 如果
x 是一个普通的 int 类型变量,执行表达式 x ^ ~x 的结果一定是 -1(各二进制位全为 1)。({{ select(26) }})
- 若
int a 为正整数,且表达式 ((a | 3) == 3) 的值为 true,则说明 a 的数值必然在 0 到 3 之间。({{ select(27) }})
- 左移运算符
<< 在右侧空出的位上补齐时,不论该数原先是正数还是负数,一律补 0。({{ select(28) }})
- 右移运算符
>> 对有符号负数进行右移时,高位补 0 还是补 1 取决于它是逻辑右移还是算术右移,在标准 C++ 绝大多数编译器中通常执行算术右移(即补 1)。({{ select(29) }})
- 表达式
10 & 5 的计算结果为 0。({{ select(30) }})