비교 연산자와 논리 연산자
비교 연산자는 오른쪽과 왼쪽의 계산 결과나 값을 비교하는 연산자이고, 논리 연산자는 논리적 계산을 수행하는 연산자 입니다.
아래의 코드를 직접 작성하고 실행해 봅시다.
#include <stdio.h> main () { printf ( "%d %d \n", 3==2, 3!=2); printf ( "%d %d \n", 3>2, 3<=2); printf ( "%d \n", (3>2) && (3<=2)); printf ( "%d \n", (3>2) || (3<=2)); printf ( "%d \n", !(3>2)); }
실행결과
위 프로그램을 실행하면 비교 연산자와 논리 연산자를 이용한 각각의 연산 결과를 논리값으로 출력합니다.
- 4행에서 '==' 연산자는 양변의 값이 같은지 비교하여 같으면 참(1), 다르면 거짓(0)을 출력합니다. 또한 ‘!=‘은 ‘같지 않음‘을 의미합니다. 따라서 ‘3==2’의 결과는 거짓(0)으로 계산되어 출력되고, ‘3!=2’의 결과는 참(1)으로 계산되어 출력됩니다.
- 5행에서 ‘3>2’의 결과는 참(1)이며, ‘3<=2’의 결과는 거짓(0)입니다.
- 6행에서 ‘&&‘ 연산자는 논리곱 연산자로, 양번의 값이 모두 참일 때만 참(1)이 출력됩니다. 이 경우에는 우변(3<=2)이 거짓이므로 ‘&&’ 연산의 결과는 거짓(0)입니다.
- 7행에서 '||' 연산자는 논리합 연산자로, 양변의 값 중 하나라도 참이면 참(1)이 출력됩니다. 따라서 우변(3>=2)는 거짓이지만, 좌변(3>2)는 참이므로 ‘||’의 연산결과는 참(1)이 되죠.
- 8행에서 ‘!‘ 연산자는 논리부정 연산자로, 원래의 값이 참(0이 아닌 값)이면 거짓(0)으로, 거짓이면 참(1)으로 계산합니다.
위의 프로그램에서 본 것처럼 비교 연산자(==,!=,>,<,<=,>=)는 왼쪽과 오른쪽의 계산 결과나 값을 비교한 결과를 참(1)과 거짓(0)의 논리값으로 계산하고, 논리 연산자(&&, ||, !)는 논리적 계산을 수행하여 참(1)과 거짓(0)의 값으로 계산합니다.
비교 연산자, 논리 연산자의 쓰임
다음 토픽에서는 비트연산자에 대해 알아봅시다.