C / C ++中按位与逻辑AND运算符有什么区别

众所周知,按位AND表示为“&”,逻辑运算符表示为“ &&”。它们之间有一些根本的区别。这些如下-

  • 逻辑AND运算符适用于布尔表达式,并且仅返回布尔值。按位AND运算符可处理整数,short int,long,unsigned int类型的数据,并且还返回该类型的数据。

示例

#include<iostream>

using namespace std;

int main() {

   int x = 3; //...0011

   int y = 7; //...0111

   if (y > 1 && y > x)

      cout << "y is greater than 1 AND x" << endl;

   int z = x & y; // 0011

   cout << "z = "<< z;

}

输出结果

y is greater than 1 AND x

z = 3

  • 如果第一个操作数为false,则&&运算符不会评估第二个操作数。同样,|| 当第一个操作数为true时,该运算符不评估第二个操作数,而是&和|之类的按位运算符 始终评估其操作数。

示例

#include<iostream>

using namespace std;

int main() {

   int x = 0;

   cout << (x && printf("Test using && ")) << endl;

   cout << (x & printf("Test using & "));

}

输出结果

0

Test using & 0

以上是 C / C ++中按位与逻辑AND运算符有什么区别 的全部内容, 来源链接: utcz.com/z/340877.html

回到顶部