#5854. 位运算专项练习1

位运算专项练习1

单选题(15道)

  1. 在8位补码表示下,表达式 ~5 的结果是:{{ select(1) }}
  • 250
  • -6
  • 122
  • -122
  1. 表达式 13 & 7 的结果是:{{ select(2) }}
  • 15
  • 5
  • 20
  • 8
  1. 表达式 12 | 6 的结果是:{{ select(3) }}
  • 14
  • 4
  • 18
  • 10
  1. 表达式 15 ^ 7 的结果是:{{ select(4) }}
  • 8
  • 22
  • 12
  • 0
  1. 在8位补码表示下,表达式 -4 >> 1 的结果是:{{ select(5) }}
  • -2
  • 126
  • 2
  • -1
  1. 表达式 9 << 2 的结果是:{{ select(6) }}
  • 18
  • 11
  • 36
  • 27
  1. 以下哪个表达式可以判断一个整数x是否为偶数?{{ select(7) }}
  • x | 1
  • x & 1
  • x ^ 1
  • ~x
  1. 表达式 0x0F & 0x55 的结果是:{{ select(8) }}
  • 0x05
  • 0x50
  • 0x55
  • 0x0F
  1. 在8位补码表示下,表达式 ~0 的结果是:{{ select(9) }}
  • 0
  • 255
  • -1
  • 1
  1. 表达式 (1 << 3) - 1 的结果是:{{ select(10) }}
  • 3
  • 7
  • 8
  • 15
  1. 以下哪个表达式可以将变量x的最低4位清零?{{ select(11) }}
  • x & 0xF0
  • x | 0xF0
  • x ^ 0xF0
  • x & ~0x0F
  1. 在8位补码表示下,表达式 -1 << 2 的结果是:{{ select(12) }}
  • -4
  • 252
  • -8
  • 248
  1. 表达式 (0xFF ^ 0xAA) & 0x55 的结果是:{{ select(13) }}
  • 0x55
  • 0xAA
  • 0x00
  • 0xFF
  1. 以下哪个表达式可以交换两个变量x和y的值(不使用临时变量)?{{ select(14) }}
  • x = y; y = x;
  • x ^= y; y ^= x; x ^= y;
  • x &= y; y &= x; x &= y;
  • x |= y; y |= x; x |= y;
  1. 在8位补码表示下,表达式 127 + 1 的结果是:{{ select(15) }}
  • 128
  • -128
  • 0
  • 255

判断题(10道)

  1. 在C++中,表达式 x << 1 等价于 x * 2。{{ select(16) }}
  • 正确
  • 错误
  1. 对于任意正整数x,表达式 x & (x - 1) 可以判断x是否是2的幂。{{ select(17) }}
  • 正确
  • 错误
  1. 在8位补码表示下,右移操作 >> 对于负数总是进行算术右移(高位补符号位)。{{ select(18) }}
  • 正确
  • 错误
  1. 表达式 ~x 等价于 -x。{{ select(19) }}
  • 正确
  • 错误
  1. 对于任何整数x,表达式 (x ^ ~x) 的结果总是全1的位模式。{{ select(20) }}
  • 正确
  • 错误
  1. 在8位补码表示下,表达式 -128 >> 1 的结果是-64。{{ select(21) }}
  • 正确
  • 错误
  1. 表达式 x | (x + 1) 总是将x的最低有效0位设置为1。{{ select(22) }}
  • 正确
  • 错误
  1. 对于正整数x,表达式 x & -x 可以得到x的最低有效1位。{{ select(23) }}
  • 正确
  • 错误
  1. 在8位补码表示下,表达式 ~0 >> 1 的结果是127。{{ select(24) }}
  • 正确
  • 错误
  1. 表达式 (x & y) + (x | y) 等价于 x + y。{{ select(25) }}
  • 正确
  • 错误