여행을 개발하다

연산자(Operater) 본문

BackEnd/C++

연산자(Operater)

yhtragramming 2019. 5. 8. 12:47

안녕하세요!

 

오늘 포스팅 할 내용은

"연산자(operator)"

입니다.


1. 연산자란?

- 어떤 함수에 작용해 그 함수를 다른 함수로 변형시키는 함수" 위키백과, 검색어 : 연산자

 

쉽게 말해서 저희가 일상적으로 사용하는 사칙연산을 생각하시면 됩니다.

사칙연산은 다른 말로 '산술 연산자'라고도 불립니다.

 

하지만 프로그래밍에서는 산술 연산자 말고도 여러 연산자를 사용하는데요.

이제부터 그 종류들을 하나둘씩 알아가 보도록 하겠습니다.

 

2. 연산자의 우선순위

3 + 4 * 5 = 35 or 23 ????

 

학창 시절 많이 헷갈렸고, 지금도 가끔 인터넷에서 회자되는 문제 유형이죠.

사칙연산의 우선순위는 (곱셈, 나눗셈), (덧셈, 뺄셈) 순이라는 것, 일반적으로 통용된 사실입니다.

 

물론, C++ 내에서도 연산자 간의 우선순위가 존재합니다.

 

* 연산자의 우선순위란?

- 어떤 연산식에서 어느 부분이 먼저 연산이 되어야 하는지를 결정하는 것.

- 같은 종류의 연산자가 있으면, 연산자의 결합 방향에 따라 연산의 우선순위가 결정된다.

 

라고 정의할 수 있습니다.

 

연산자와 연산자 종류, 이에 따른 결합 방향은 표로 정리하면 다음과 같습니다.

일반적으로 생각하는 연산 순서인 '(좌→우)'는,

단항 연산자와 대입 연산자의 경우 '(우→좌)'로 이루어진다는 것을 주의해야겠습니다.

연산자 우선순위

연산자 종류

결합방향

괄호, 구조체, 공용체

( ). [ ], ->

좌 → 우

단항 연산자

! ~ ++ -- - + * & sizeof

우 → 좌

이항연산자

승제

* / %

좌 → 우

가감

+ -

SHIFT

<< >>

비교

< <= > >=

등가

== !=

bit AND

&

bit XOR

^

bit OR

|

논리 AND

&&

논리 OR

||

조건 연산자

? :

좌 → 우

대입 연산자

= += -= *= /= %= > >= < <= &= ^= |=

우 → 좌

나열 연산자

,

좌 → 우

3. 연산자의 종류


연산자의 종류를 크게

"산술 연산자, 증감 연산자, 관계 연산자, 논리 연산자, 대입 연산자"

로 나누어서 살펴보겠습니다.

 

3.1 산술 연산자

- 위에서 설명한 것처럼 일상생활에서 흔히 쓰이는 가감승제를 의미한다.

연산자

의미

*

곱셈

/

나눗셈

%

나머지

+

덧셈

-

뺄셈

 

3.2 증감 연산자

- 증가 연산자(++), 감소 연산자(--)는 각각 변수 값을 1만큼 증가시키고, 감소시킨다.

- ++변수, 변수++, --변수, 변수--는 엄연히 다른 값을 출력하는 연산자이므로 순서에 주의.

연산자 & 표현 예

의미

++

++a

a = a + 1 후 a 값을 사용한다.

a++

a값을 사용 후 a = a + 1

--

--b

b = b - 1 후 b값을 사용한다.

b--

b값을 사용 후 b = b - 1

 

3.3 관계 연산자

- 조건 검사를 할 때 사용하며, 연산 결과는 참(True,1) 혹은 거짓(False,0)으로 표현된다.

- 두 식 또는 값의 크기를 비교하는 연산자로서, 숫자 및 문자에 모두 적용된다.

- 같다(==)와 변수에 값을 대입하는 대입 연산자(=)와의 혼동에 주의해야 한다.

연산자

의미

<

~보다 작다

<=

~보다 작거나 같다

>

~보다 크다

>=

~보다 크거나 같다

==

~와 같다

!=

~와 같지 않다

 

3.4 논리 연산자

- 참인지 거짓인지 판별하는 연산자.

- 주어진 조건이 참이면 결과 값은 1, 주어진 조건이 거짓이면 결과 값은 0이 된다.

연산자

의미

!

참은 거짓으로 거짓은 참으로 바꾼다.

&&

두 조건의 값이 모두 참일 때 결과값이 참이 된다. (AND)

||

두 조건의 값 중 하나만 참일 때 결과 값이 참이 된다. (OR)

 

3.5 대입(Assignment)연산자

- 우항에 있는 값을 계산하여, 좌항에 넣어주는 연산자.

- 대입 연산자를 효율적으로 사용할 경우, 코드의 길이를 획기적으로 줄일 수 있다.

연산자

사용 예시

의미

=

a = b

a = b, a에 b의 값을 대입한다.

+=

a += b

a = a + b, a에 a와 b를 더한 값을 대입한다.

-=

a -= b

a = a - b, a에 a에서 b를 뺀 값을 대입한다.

*=

a *= b

a = a* b, a에 a와 b를 곱한 값을 대입한다.

/=

a /= b

a = a / b, a에 a를 b로 나눈 값을 값을 대입한다.

%=

a %= b

a = a%b, a에 a를 b로 나눈 값을 대입한다.

 

3.6 비트연산자

- 정수형 자료(int, short, long)의 값을 2진수로 바꿔 이에 대해 비트 단위로 논리 연산을 수행한다.

연산자

의미

~

해당 비트의 값을 반전(1의 보수) 시킨다. (1 → 0, 0 → 1)

&

두 비트 값이 모두 1이면 결과가 1이 된다.

^

두 비트 값이 서로 값이 다르면 결과가 1이 된다.

|

두 비트 값이 모두 0이면 결과가 0이 된다.

 

ex ) 비트 연산 사용 예제

 

3.7 삼항 연산자

* 형식

- 변수 = 피연산자1 ? 피연산자 2 : 피연산자3 ;

- 피연산자의1의 조건이 참이면 피연산자2의 결과 값이 변수에 저장되고, 거짓이면 피연산자3의 결과 값이 변수에 저장된다.


지금까지 C++의 연산자에 대해서 알아보았습니다

다음 포스팅에서 뵙겠습니다 : )

'BackEnd > C++' 카테고리의 다른 글

제어문2. Switch  (0) 2019.05.08
제어문1. If  (0) 2019.05.08
표준 입출력 함수(printf)  (0) 2019.05.08
변수(variable)  (0) 2019.05.07
C++ 언어의 기본 구조, 주석(Comment), 솔루션 빌드 및 실행  (0) 2019.05.07
Comments