본문 바로가기
  • Always Awake
프로그래밍,Tools

[프로그래밍] 연산자 - 산술, 관계, 비트, 논리, 대입, 조건 연산자 알아보기

by NerdyBoy 2022. 2. 21.
반응형

연산자는 프로그래밍 전반에 걸쳐 사용되며, 필수적인 요소라고할 수 있다

연산자는 무엇인지, 어떤 종류가 있는지 알아보자!

 


연산자란?

식(expression)은 프로그램에서 컴퓨터가 수행해야 할 기본적인 작업 명령을 설정하는데 사용되며, 연산자는 식을 구성하는 기본 단위로 사용된다[1].

 

연산자의 종류와 우선순위

하나의 수식에 여러 개의 연산자가 사용되면 기본적으로 다음의 순서대로 처리된다.

순서가 같은 연산자는 결합규칙에 따른다

대분류 연산자 구분 연산자 종류 결합규칙 우선순위
단항 연산자 단항 연산자 !  ~  ++  --  sizeof

⬆︎
높음

















낮음
⬇︎







이항 연산자 산술 연산자

*  /  %



+  -
시프트 연산자 <<  >>
관계 연산자

<  <=  >  >=
== !=
비트 연산자 &
^
|
논리 연산자 &&
||
삼항 연산자 조건 연산자 ?  :
대입 연산자 대입 연산자 =  +=  -=  *=  /=  %=  <<=  >>=  등
순서 연산자 순서 연산자 ,


1. 산술 연산자

산술 계산에 사용되는 연산자를 말한다.

연산자 의미 비고
+ 덧셈  
- 뺄셈  
* 곱셈  
/ 나눗셈  
% 나머지  
++ 증가 연산자 전치 : 먼저 변수 값을 증감 시킨 후 변수를 연산에 사용한다 (++a, --a)
후치 : 먼저 변수를 연산에 사용한 후 변수의 값을 증가시킨다 (a++, a--)
-- 감소 연산자

 

예제

c = 4, b = 3 으로 선언 되었을 때, 다음의 연산을 해보자

c = ++b / b++;
  1. 첫번째 b의 초기값은 3이고, 전치 증가 연산을 수행하면 4가된다.
  2. 두번째 b는 1. 의 연산을 통해 4가 되었고, 후치 증가 연산이므로 연산이 끝난 후 증가된다.
  3. /(나눗셈) 을 수행하면 c의 값은 4/4 = 1 이된다.
  4. 연산이 끝난후 b의 값은 후치 증가 연산에 의해 5가 된다. 

 

2. 관계 연산자

두 수의 관계를 비교하여 참(true) 또는 거짓(false)을 결과로 얻는 연산자이다.

  • 거짓은 0, 참은 1로 사용되나 0이외 모든 숫자도 참으로 간주된다.
연산자 의미
== 같다
!= 같지않다
> 크다
>= 크거나 같다
< 작다
<= 작거나 같다

*왼쪽을 기준으로 해석한다

 

 

3. 비트 연산자

연산자 의미 비고
& and 모든 비트가 1일 때만 1
^ xor 모든 비트가 같으면 0, 하나라도 다르면 1
| or 모든 비트 중 한 비트라도 1이면 1
~ not 각 비트의 부정
<< 왼쪽 시프트 비트를 왼쪽으로 이동
>> 오른쪽 시프트 비트를 오른쪽으로 이동

 

예제

정수형 변수 a = 5, b = 7 로 선언되었을 때, 다음의 연산을 해보자.

➀ a & b
➁ b << 3

➀ & 는 두비트가 모두 1일 때만 1이 되는 비트 연산자이다.

    C 언어에서 정수형 변수는 4바이트(32비트) 이므로 각 변수의 값을 4바이트 이진수로 변환한 다음 비트별로 연산한다.

    5 = 0 0 0 0 ... 0 1 0 1

    7 = 0 0 0 0 ... 0 1 1 1

    &    0 0 0 0 ... 0 1 0 1

 

➁ << 는 왼쪽 시프트 연산자이므로, b에 저장된 값을 왼쪽으로 3비트 이동시킨 다음 다시 저장시킨다.

    7 = 0 0 0 0 ... 0 1 1 1

    << 3 수행

    0 0 0 0 ... 0 0 1 1 1 0 0 0 = 56

 

 

4. 논리 연산자

두 개의 논리 값을 연산하여 참(true) 또는 거짓(false)을 결과로 얻는 연산자

연산자 의미 비고
! not 부정
&& and 모두 참이면 참
|| or 하나라도 참이면 참

 

 

5. 대입 연산자

연산 후 결과를 대입하는 연산식을 간략하게 입력할 수 있도록 대입 연산자를 제공한다. 산술, 관계, 비트, 논리 연산자에 모두 적용 가능

연산자 의미
+= a += 1 a = a + 1
-= a -= 1 a = a - 1
*= a *= 1 a = a * 1
/= a /= 1 a = a / 1
%= a %= 1 a = a % 1
<<= a <<= 1 a = a << 1
>>=  a >>= 1 a = a >> 1

 

 

6. 조건 연산자

조건에 따라 서로 다른 수식을 수행한다.

형식

조건 ? 수식1 : 수식2; '조건'의 수식이 참이면 '수식1'을, 거짓이면 '수식2'를 실행한다.

예제

a = 1, b = 2 와 같이 선언되었을 때, 다음의 연산을 수행해보자.

b *= a > b ? a : b;

'조건' 부분을 수행하면 a 가 b 보다 작으므로 false 이다. 따라서 '수식2'가 적용되어

b *= b 가되고,

이부분은 b = b * b 이므로 4 가된다.

 

 

7. 기타 연산자

연산자 의미
sizeof 자료형의 크기를 표시한다.
,(콤마) 콤마로 구분하여 한 줄에 두 개 이상의 수식을 작성하거나 변수를 정의한다.
왼쪽에서 오른쪽으로 순서대로 수행되며, 순서 연산자라 부르기도 한다.
(자료형) 사용자가 자료형을 다른 자료형으로 변환할 때 사용하는 것으로, case(캐스트) 연산자라고 부른다.

예) a = (int)1.3 + (int) 1.4;
1.3 과 1.4 를 정수형으로 변환하면 둘다 1이 되므로 a 는 2가 된다.

 

 


 

대표 이미지

 

이번 포스팅에서는 연산자의 종류와 의미등에 대해 알아봤다.

연산자는 프로그래밍을 하면서 자연스럽게 익혀지니,

너무 외우려고 하지말고 모르는것만 찾아보면서 배우자!

 

출처

자료 참고: 

시나공 정보처리기사 필기 2022를 참고하여 작성되었습니다

[1] http://prof.dongju.ac.kr/syhong/public_html/teaching/c/c04.htm

반응형

'프로그래밍,Tools' 카테고리의 다른 글

맥(Mac) 에서 .rar 파일 압축 해제 하기  (0) 2022.05.17

댓글