KDONG 2021. 7. 25. 17:33

학습내용

  • 다양한 연산자
  • 기타 연산자

학습목표

  • C언어에서 사용되는 다양한 연산자를 알고 활욜할 수 있다.
  • 형변환 연산자와 연산자 우선순위를 설명할 수 있다.

 

다양한 연산자

1. 산술연산자

  • 산술연산에 사용 되는 연산자
연산자 연산 결과
+ 더하기 3+2 5
- 빼기 3-2 1
* 곱하기 3*2 6
/ 나누기 3/2 1.5
% 나머지 3%2 1

참고

%d - 값을 10진수로 출력
\n - 공백

2. 관계연산자

  • 크기 비교연산에 사용되는 연산자
  • 비교 결과 참(true)이면 1, 거짓(false)이면 0
연산자 연산 결과
> 큰가? 5>3 / 'b'>'a' 1
< 작은가? 5<3 / 'a'<'B' 0
>= 크거나 같은가? 5>=3 1
<= 작거나 같은가? 5<=3 0
!= 다른가? 5!=3 1
== 같은가? 5==3 0

 

3. 논리연산자

  • AND OR NOT 연산에 사용되는 연산자

 

4. 증감연산자

  • 값을 1만큼 증가 또는 감소시키는 연산자
  • 증감 연산자는 반드시 변수에만 사용
  • 연산자 위치에 따라 연산 순서가 다름
분류 풀이
전위형 a = ++cnt cnt = cnt + 1;
a = cnt;
a = --cnt cnt = cnt - 1;
a = cnt;
후위형 a = cnt++ a = cnt;
cnt = cnt + 1;
a = cnt-- a = cnt;
cnt = cnt - 1;

 

 

기타 연산자

1. 비트연산자

  • 비트단위의 연산에 사용되는 연산자 : 비트 논리 연산자, 이동(Shift)연산자

 1) 비트논리연산자

연산자 연사
& AND
| OR
~ NOT
^ XOR

 

x y AND(x&y) OR(x|y) NOT(~x) XOR(x^y)
0 0 0 0 1 0
0 1 0 1 1 1
1 0 0 1 0 1
1 1 1 1 0 0

 

 2) 이동(Shift)연산자

  • 이동 후 빈자리는 0으로 채워짐
  • 비트 왼쪽 이동(<<) : 왼쪽 피연산자 * 2^n
  • 비트 오른쪽 이동(>>) : 왼족 피연산자 /2^n

 

2. 대입연산자

  • 왼쪽 변수에 오른쪽 값을 저장
  • 왼쪽은 변수만 사용가능
  • 복합대입 연산자를 사용할 수 있음

3. 조건연산자

  • 삼항 연산자
  • 수식C ? 수식T : 수식F

 

4. 형변환연산자

 1) 묵시적 형변환(Implicit Type Conversion)

   - 컴파일러에 의해 자동으로 수행하는 형변환

 2) 명시적 형변환(Explicit Type Conversion)

   - 지정한 데이터 타입으로 임시적으로 수행하는 형변환

 

(int) 25.347 ---> 25
(double)25 ---> 25.0

printf("%d/%d = %d", a, b, a/b);

 

5. 연산자 우선순위

 

학습정리

1. 다양한 연산자

  • 산술연산자로 +, -, *, /, %가 있음
  • 크기 비교에 사용되는 관계연산자로 <, <, <=, >=, !=, ==가 있음
  • 논리 연산자로 &&, ||, ! 연산자를 사용함
  • 증감 연산자에는 연산자의 위치에 따라서 전위형과 후위형이 있음

2. 기타 연산자

  • 비트간의 연산으로 비트연산자가 있음
  • 임시적인 형변환을 위하여 형변환 연산자를 사용할 수 있음
  • 연산자의 우선 순위에 따라 연산이 이루어짐