澄清int&在C ++中的if语句中的int

时间:2014-06-27 23:47:57

标签: c++ c

该语句是返回单个位还是位串联。

if(mask[i] & groupbit) {
    //...
}

使用:

  • i =整数
  • mask[i] =整数指针的元素
  • groupbit =整数

2 个答案:

答案 0 :(得分:2)

它将产生一个完整的整数。当您按位使用时,两个值中的每个位都在一起,并且结果中的每个位都相应地设置。结果将与正在和/或在一起的值相同的位数。

这假设您正在使用两个整数变量。

答案 1 :(得分:0)

假设mask是指向整数类型的指针,编译器将执行以下操作:

  1. 以整数形式访问i“数组的第mask个元素
  2. 确保两个操作数大小相同(这可能涉及位扩展或截断)
  3. 做一点AND
  4. 如果在前一个AND操作的结果中设置了一个位,则该值将被视为true,否则将被视为false(如果结果的每一位都是0