Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

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가 되면 두 번째 피연산자를 평가하지 않습니다. 마찬가지로 || 연산자는 첫 번째 피연산자가 참이 될 때 두 번째 피연산자를 평가하지 않지만 &및 | 항상 피연산자를 평가합니다.

예시

#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