【问题标题】:What is if(i | j) and if (i & j) doing in C++ [duplicate]if(i | j)和if(i&j)在C ++中做什么[重复]
【发布时间】:2020-03-28 19:47:14
【问题描述】:

您好,在学习 C++ 几个月后,我决定看一些 CPA 练习题,第一个问题让我对这段代码感到震惊。

#include <iostream>
using namespace std;
int main(void) {
 int i = 1, j = 2;
 if(i > j && j > i)
     i++;
 if(i > j || j > i)
     j++;
 if(i | j)
     i++;
 if(i & j)
     j++;
 cout << i * j << endl;
 return 0;
}

我不明白第三个和第四个 if 语句在寻找什么,因为我以前从未见过这种语法。谢谢!

【问题讨论】:

  • 第三个是按位使用or。第四种是按位使用and。请参阅C++ operators位运算符 部分
  • meaning of & in C++ 的一半重复。
  • 手动进行位运算。如果结果为零,则将条件视为false。如果结果非零,则条件被视为真。
  • 不是“在 C++ 中为布尔值使用按位运算符”的副本,因为在这种情况下操作数是 int

标签: c++ if-statement bitwise-operators bitwise-and bitwise-or


【解决方案1】:

它们是按位运算符。 | 是按位或,&amp; 是按位与。

【讨论】:

    猜你喜欢
    • 2014-06-14
    • 1970-01-01
    • 2017-07-20
    • 1970-01-01
    • 1970-01-01
    • 2021-09-20
    • 1970-01-01
    • 2021-02-28
    • 1970-01-01
    相关资源
    最近更新 更多