[2-2] 비교 연산자 & 논리 연산자

비교 연산자와 논리 연산자에 대해 알아보겠습니다.

비교 연산자

비교 연산은 두 값의 크기를 비교합니다. 논리 연산자는 비교한 결과가 참이면 1, 거짓이면 0를 반환합니다. 크게 등호 연산자, 부정 연산자, 관계 연산자로 볼 수 있습니다. 이 셋 중 관계 연산자의 연산 우선순위가 가장 높습니다. 등호 연산자와 부정 연산자의 우선순위는 같습니다.

구분 연산자 이름 연산자 구문
등호 연산자 같음 == a == b
부정 연산자 같지 않음 != a != b
관계 연산자 > a > b
작음 < a < b
크거나 같음 >= a >= b
작거나 같음 <= a <= b
#include <stdio.h>

int main(void) {
	int a = 1;
	int b = 2;
	
	printf("a == b : %d\n", a == b);
	printf("a != b : %d\n", a != b);
	printf("a > b : %d\n", a > b);
	printf("a < b : %d\n", a < b);
	printf("a >= b : %d\n", a >= b);
	printf("a <= b : %d\n", a <= b);

	return 0;
}

[출력]

a == b : 0
a != b : 1
a > b : 0
a < b : 1
a >= b : 0
a <= b : 1

=!, =>, =< 처럼 잘못 표기하는 경우가 있습니다. ‘안 같다’, ‘크기 않다’, ‘작지 않다’처럼 외워서 말한 순서대로 쓰면 헷갈릴 일이 없습니다.

논리 연산자

논리 연산은 참과 거짓 두 가지 원고만 있는 집합의 연산입니다. 논리 연산자로는 AND, OR, NOT 이 있습니다.

연산자 이름 영문 표현 연산자 구문
부정(NOT) 참이면 거짓, 거짓이면 참 ! !a
논리곱(AND) 두 값이 참이어야 참 && a && b
논리합(OR) 둘 중 하나라도 참이면 참 || a ||
#include <stdio.h>

int main(void) {
	int a = 1;
	int b = 0;
	
	printf("a = %d, !a = %d\n", a, !a);
	printf("b = %d, !b = %d\n", b, !b);
	printf("a && b = %d\n", a && b);
	printf("a || b = %d\n", a || b);

	return 0;
}

[출력]

a = 1, !a = 0
b = 0, !b = 1
a && b = 0
a || b = 1
&&를 &로,   로 쓰는 실수를 수없이 하게 될 겁니다. &와 은 비트 연산에 사용하는 비트 연산자입니다.