C++ 프로그래밍 언어에서는 &&, ||, ! 같은 기호 대신 사용할 수 있는 키워드 형태의 논리 연산자를 제공합니다. 이러한 대체 키워드는 과거 키보드가 특수 기호 입력을 제대로 지원하지 않던 시절 C 언어에서 처음 도입되었으며, 현재 C++에서도 동일하게 사용할 수 있습니다. 아래에서 C++ 논리 연산자의 서면(텍스트) 버전을 자세히 살펴보겠습니다.
연산자별 서면 버전 목록
각 연산자와 그에 대응하는 서면 버전은 다음과 같습니다.
| 연산자 | 기호 | 서면 버전 |
|---|---|---|
| AND 연산자 | && | and |
| OR 연산자 | || | or |
| NOT 연산자 | ! | not |
| 같지 않음(NOT EQUAL) 연산자 | != | not_eq |
| 비트 AND 연산자 | & | bitand |
| 비트 OR 연산자 | | | bitor |
| 비트 XOR 연산자 | ^ | xor |
| AND 할당 연산자 | &= | and_eq |
| OR 할당 연산자 | |= | or_eq |
| XOR 할당 연산자 | ^= | xor_eq |
참고로 이러한 대체 표기는 C++에서는 별도의 헤더 파일 없이 항상 사용 가능한 예약 키워드입니다. 반면 C 언어에서는 <iso646.h> 헤더를 포함해야만 사용할 수 있습니다.
예제 코드
서면 논리 연산자의 실제 구현을 보여주는 프로그램입니다.
#include<iostream>
using namespace std;
int main(){
int x=1, y=0;
cout<<"서면 논리 연산자 실행 결과 :\n";
cout<<x<<" and "<<y<<" = "<<(x and y)<<endl;
cout<<x<<" or "<<y<<" = "<<(x or y)<<endl;
cout<<x<<" bitwise and "<<y<<" = "<<(x bitand y)<<endl;
cout<<x<<" not equal to "<<y<<" = "<<(x not_eq y)<<endl;
return 0;
}
실행 결과
서면 논리 연산자 실행 결과 : 1 and 0 = 0 1 or 0 = 1 1 bitwise and 0 = 0 1 not equal to 0 = 1
서면 연산자 사용의 장단점
장점 − 영어 단어 형태라서 코드의 가독성이 크게 향상됩니다.
장점 − |, &, ! 같은 특수 문자를 입력하기 어려운 키보드 환경에서 매우 유용합니다.
단점 − 문장 안에서 서면 키워드를 사용할 때는 연산자와 피연산자 사이에 반드시 공백을 두어야 하며, 공백이 없으면 컴파일 오류가 발생할 수 있습니다.