#5855. 位运算专项练习2

位运算专项练习2

单选题(15道)

  1. 表达式 0b1100 & 0b1010 的结果是:{{ select(1) }}
  • 0b1000
  • 0b1110
  • 0b0110
  • 0b1010
  1. 在8位补码表示下,表达式 ~3 的结果是:{{ select(2) }}
  • 252
  • -4
  • 124
  • -124
  1. 表达式 0b1101 | 0b0110 的结果是:{{ select(3) }}
  • 0b1011
  • 0b1111
  • 0b1001
  • 0b0101
  1. 表达式 0b1010 ^ 0b1100 的结果是:{{ select(4) }}
  • 0b0110
  • 0b1000
  • 0b1110
  • 0b0010
  1. 在8位补码表示下,表达式 -8 >> 2 的结果是:{{ select(5) }}
  • -2
  • 62
  • 2
  • -4
  1. 表达式 7 << 3 的结果是:{{ select(6) }}
  • 21
  • 56
  • 14
  • 28
  1. 以下哪个表达式可以判断一个整数x的最低有效位是否为1?{{ select(7) }}
  • x | 1
  • x & 1
  • x ^ 1
  • ~x & 1
  1. 表达式 0x3F & 0xA5 的结果是:{{ select(8) }}
  • 0x25
  • 0xBF
  • 0x3F
  • 0xA5
  1. 在8位补码表示下,表达式 ~1 的结果是:{{ select(9) }}
  • 254
  • -2
  • 126
  • -126
  1. 表达式 (1 << 4) | (1 << 1) 的结果是:{{ select(10) }}
  • 5
  • 16
  • 18
  • 10
  1. 以下哪个表达式可以将变量x的第3位(从0开始计数)设置为1?{{ select(11) }}
  • x | (1 << 3)
  • x & (1 << 3)
  • x ^ (1 << 3)
  • x & ~(1 << 3)
  1. 在8位补码表示下,表达式 -64 << 1 的结果是:{{ select(12) }}
  • -128
  • 128
  • 0
  • -32
  1. 表达式 (0x55 ^ 0x33) & 0x0F 的结果是:{{ select(13) }}
  • 0x66
  • 0x06
  • 0x0F
  • 0x00
  1. 以下哪个表达式可以判断整数x是否是2的幂?{{ select(14) }}
  • x & (x - 1) == 0
  • x | (x - 1) == 0
  • x ^ (x - 1) == 0
  • ~x & (x - 1) == 0
  1. 在8位补码表示下,表达式 -1 ^ 0x7F 的结果是:{{ select(15) }}
  • 0x80
  • 0x7E
  • 0xFE
  • -128

判断题(10道)

  1. 在C++中,表达式 x >> 1 等价于 x / 2 对于正整数总是成立。{{ select(16) }}
  • 正确
  • 错误
  1. 表达式 x & ~(1 << n) 可以将变量x的第n位清零。{{ select(17) }}
  • 正确
  • 错误
  1. 在8位补码表示下,左移操作 << 对于负数总是进行逻辑左移(低位补0)。{{ select(18) }}
  • 正确
  • 错误
  1. 表达式 x ^ y ^ x 的结果总是等于y。{{ select(19) }}
  • 正确
  • 错误
  1. 对于任何整数x,表达式 (x & -x) == x 可以判断x是否是2的幂。{{ select(20) }}
  • 正确
  • 错误
  1. 在8位补码表示下,表达式 127 << 1 的结果是-2。{{ select(21) }}
  • 正确
  • 错误
  1. 表达式 x | ~x 的结果总是全1的位模式。{{ select(22) }}
  • 正确
  • 错误
  1. 对于正整数x,表达式 (x + (x & -x)) 可以得到x的下一个更大的2的幂。{{ select(23) }}
  • 正确
  • 错误
  1. 在8位补码表示下,表达式 ~0 << 2 的结果是-4。{{ select(24) }}
  • 正确
  • 错误
  1. 表达式 (x ^ y) == ((x | y) & ~(x & y)) 总是成立。{{ select(25) }}
  • 正确
  • 错误