C/C++中按位和逻辑AND运算符有什么不同?
众所周知,按位AND用“&”表示,而逻辑运算符用“&&”表示。它们之间有一些基本的差异。如下所示 −
- 逻辑AND运算符对布尔表达式进行操作,并且仅返回布尔值。按位AND运算符对整数、短整型 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
- 如果第一个操作数变为假,则&运算符不会计算第二个操作数。类似地,||运算符在第一个操作数变为真时不会计算第二个操作数,但按位运算符(如&和|)始终计算其操作数。
示例
#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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C编程
C++
C#
MongoDB
MySQL
Javascript
PHP