본문 바로가기

C언어_VisualStudio

연산자 : 논리 연산자, 조건 연산자, 콤마 연산자, 비트 단위 연산자, 연산자의 우선 순위와 결합 규칙

오늘은 연산자에 대한 정리 2편!! :-)

1편은 다음을 참고! https://cwithvisual.tistory.com/entry/%EC%82%B0%EC%88%A0-%EC%97%B0%EC%82%B0%EC%9E%90-%EB%8C%80%EC%9E%85-%EC%97%B0%EC%82%B0%EC%9E%90-%EA%B4%80%EA%B3%84-%EC%97%B0%EC%82%B0%EC%9E%90

 

연산자 : 산술 연산자, 대입 연산자, 관계 연산자

오늘은 연산자에 대해 정리!! :-) 연산자는 기능에 다라 다음과 같이 분류할 수 있다. 산술 연산자, 대입 연산자, 관계 연산자 산술 연산자 산술 연산자는 기본적인 산술 연산인 덧셈, 뺄셈, 곱

cwithvisual.tistory.com

 

연산자 정리

 

연산자는 기능에 다라 다음과 같이 분류할 수 있다.

연산자 종류

 

논리 연산자, 조건 연산자 콤마 연산자, 비트 단위 연산자, 연산자의 우선순위와 결합 규칙

 

 

논리 연산자

x && y 	// AND 연산
x || y 	// OR 연산
!x 	// NOT 연산
  • x && y : AND 연산 : x와 y가 모두 참일 경우에 참
  • x || y : OR 연산 : x가 참이거나 y가 참일 경우에 참 <-> x와 y가 모두 거짓일 경우에만 거짓
  • !x : NOT 연산 : x가 참이면 거짓 <-> 거짓이면 참
x y x && y x || y
1 1 1 1
1 0 0 1
0 1 0 1
0 0 0 0

 

윤년을 판단하는 수식을 적을 수 있다.

https://cwithvisual.tistory.com/entry/%EB%8B%AC%EB%A0%A5-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8

 

달력 프로그램 만들기 완전정복!

달력 프로그램 구성 사용자에게 출력하고 싶은 년도와 달을 입력하도록 하고, 달력을 출력해준다. 여러 개의 함수로 구성되어 있으며 긴 코드를 작성하는 연습을 할 수 있다. 여러 함수 설명 다

cwithvisual.tistory.com

 

 

조건 연산자

유일하게 3개의 피연산자를 가지는 삼항 연산자이다.

최댓값을 계산하는 수식을 적어보면 다음과 같다.

max_value = (x > y) ? x: y;

이 수식은 다음을 나타낸다.

조건 연산자

절댓값이나 최솟값을 계산하는데 많이 쓰인다.

absolute_value = (x > 0) ? x: -x;	// 절대값 계산
max_value = (x > y) ? x: y;		// 최대값 계산
min_value = (x < y) ? x: y;		// 최소값 계산

 

 

콤마 연산자

수식을 콤마로 연결할 수 있다. 각각의 수식은 왼쪽부터 오른쪽으로 순차적으로 실행된다.

x++, y++;  // x의 수식이 먼저 계산된 후 y의 수식이 계산됨

콤마 연산자는 한정된 공간에 여러 개의 문장을 넣을 때 사용된다. 반복문이나 조건문에서 요긴하게 사용될 수 있다.

 

 

비트 단위 연산자

컴퓨터에서 모든 데이터는 비트로 표현된다. 비트(bit)는 컴퓨터에서 정보를 저장하는 가장 작은 단위이다.

비트는 0과 1 값만을 가진다.

비트 단위로 연산을 수행하고 다음과 같은 것들이 있다.

&	// 비트 AND	: 두 개의 피연산자의 해당 비트가 모두 1이면 1, 아니면 0
|	// 비트 OR	: 두 개의 피연산자의 해당 비트  중 하나라도 1이면 1, 아니면 0
^	// 비트 XOR	: 두 개의 피연산자의 해당 비트의 값이 같으면 0, 아니면 1
<<	// 왼쪽으로 이동	: 지정된 개수만큼 모든 비트를 왼쪽으로 이동한다.
>>	// 오른쪽으로 이동: 지정된 개수만큼 모든 비트를 오른쪽으로 이동한다.
~	// 비트 NOT	: 0은 1로 만들고 1은 0으로 만든다.

비트 단위 연산자는 정수 타입의 피연산자에만 적용할 수 있다.

참고) 정수 타입: char, short, int, long 등

 

비트 이동 연산자 <<, >>

x << y	// x의 비트들을 y칸만큼 왼쪽으로 비트 이동
x >> y	// x의 비트들을 y칸만큼 오른쪽으로 비트 이동

 


연산자의 우선 순위

우선순위(precedence)는 많은 연산들 중에서 어떤 연산을 먼저 수행할지를 결정하는 규칙이다. 각 연산자들은 서열이 매겨져 있다.

C에서 사용되는 모든 연산자에 대한 우선순위를 정리하였다.

연산자의 우선 순위

참고) 대부분 모든 우선순위를 기억할 수는 없다. 그럴때는 괄호를 이용하여 우선 순위를 정리하거나 수식을 나누면 된다.  

 

연산자들의 기능에 따른 분류에 따라서 우선 순위를 정리해보면 대략 다음과 같다.

콤마 < 대입 < 논리 < 관계 < 산술 < 단항

 

 

결합 규칙

연산자의 결합 규칙(association)은 동일한 우선순위의 연산이 있는 경우에 무엇을 먼저 수행하느냐에 대한 규칙이다.

동일한 우선순위를 가지는 연산들이 여러 개가 있으면 어떤 것을 먼저 수행하는지 연산자마다 달라지는데 아래 표에 정리하였다.

연산자의 결합 법칙