【问题标题】:what does "|=" operator mean in C?“|=”运算符在C中是什么意思?
【发布时间】:2013-04-22 15:24:03
【问题描述】:

这段代码是如何工作的:

int a = 1;
int b = 10;

a |= b;

a |= b; 是如何工作的?好像|= 不是 C 中的运算符?

【问题讨论】:

  • 同:a = a | b;
  • 这是一个基本问题,可以通过阅读任何像样的 C 书籍或教程来回答。 (操作符通常出现在索引的开头,在“A”之前)。
  • 请不要无缘无故投反对票。一个简单的问题不一定是一个坏问题。

标签: c operator-keyword


【解决方案1】:

它的工作方式类似于 | + = 运算符,其工作方式与 += 类似。

相当于

a = a|b;

我建议你阅读这篇关于运营商的文章:http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B#Bitwise_operators Ans this one关于按位运算 http://en.wikipedia.org/wiki/Bitwise_operation

【讨论】:

    【解决方案2】:

    遵循例如+=的模式:

    a |= b;
    // Means the same thing as:
    a = a | b;
    

    也就是说,在ab 中设置的任何位都应在a 中设置,而在这两者中设置的任何位都不应在a 中设置。

    【讨论】:

      【解决方案3】:

      这就是“按位或”相等。它遵循正等于+=、负等于-=等模式。

      a |= b;a = a | b; 相同

      【讨论】:

      • “按位或等于”不是此运算符的名称。您将它与 >= 等混淆了,它们是比较运算符。 |= 不是比较运算符。
      • 措辞有点奇怪,所以我会编辑它。我的意思是“按位或”相等。有点像“加号”等于。
      • 啊,是的,我现在明白你的意思了。 “或”确实使构造与 plus-equal 具有相同模式的运算符名称变得困难。
      【解决方案4】:

      表达式a |= b; 等价于表达式a = a | b;

      【讨论】:

        【解决方案5】:

        这是复合赋值运算符。 它的含义是:

        a = a | b;
        

        【讨论】:

          【解决方案6】:

          这个和

          一样
          a = a | b;
          

          +=-=等方式相同

          【讨论】:

            【解决方案7】:

            它是bitwise OR operator,并且

            a |= b;
            

            是一样的
            a = a | b;
            

            【讨论】:

              猜你喜欢
              • 2011-05-12
              • 2011-01-01
              • 1970-01-01
              • 2010-09-15
              • 2011-12-11
              • 2013-06-03
              • 2012-03-03
              • 2013-05-07
              相关资源
              最近更新 更多