• 프로그래밍 언어 활용 part 1 - 연산자

    2021. 7. 25.

    by. 고구마달랭이

    연산자

    [학습내용] [학습목표]
     다양한 연산자
     기타 연산자
     C언어에서 사용되는 다양한 연산자를 알고 활용할 수 있다.
     형변환 연산자와 연산자 우선순위를 설명할 수 있다.

    다양한 연산자

     

    1. 산술연산자

    • 산술연산에 사용되는 연산자

    연산자 연산 결과
    + 더하기 3 + 2 5
    - 빼기 3 - 2 1
    * 곱하기 3 * 2 6
    / 나누기 3 / 2 1.5
    % 나머지 3 % 2 1
    int a=5, b=3;
    printf(“%d + %d = %d\n”, a, b, a+b);   // 5 + 3 = 8
    printf(“%d - %d = %d\n”, a, b, a-b);  // 5 – 3 = 2
    printf(“%d * %d = %d\n”, a, b, a*b);  // 5 * 3 = 15
    printf(“%d / %d = %d\n”, a, b, a/b);  // 5 / 3 = 1
    printf(“%d % %d = %d\n”, a, b, a%b); // 5 % 3 = 2

     


     

    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

     

     

    int a=9, b=2;
    printf(“%d > %d의결과값은 %d입니다.\n”, a, b, a>b);	// 9 > 2의 결과값은 1입니다.
    printf(“6 == 6의 결과값은 %d”, 6 == 6);			   // 6 == 6의 결과값은 1

     


     

    3. 논리연산자

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

    연산자 연산
    && 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;

     

    int a=5, b = ++a;
      printf("a=%d \n", a++);  		 // a=5
      printf("a = %d b = %d", a, b);	// a=7 b=7
      printf("\n a = %d b = %d", a++, ++b);	// a=7 b=8

     

    기타 연산자

     

    1. 비트연산자

    • 비트단위의연산에사용되는연산자

     

    비트 논리 연산자

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

     

    이동(Shift)연산자

    이동 후 빈자리는 0으로 채워짐

    비트 왼쪽 이동 : 왼쪽 피연산자 * 2N

    비트 오른쪽 이동 : 왼쪽 피연산자 / 2N

    연산자 연산
    << 왼쪽으로 이동
    >> 오른쪽으로 이동

     


     

    2. 대입연산자

    왼쪽 변수에 오른쪽 값을 저장

    왼쪽은 변수만 사용가능

    복합대입 연산자를 사용할 수 있음

     


     

    3. 조건연산자

    삼항 연산자

    수식C ? 수식T : 수식F

     


     

    4. 형변환연산자

    묵시적 형변환(Implicit Type Conversion

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

     

    명시적 형변환(Explicit Type Conversion)

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

    (int) 25.347 → 25

    (double) 25 → 25.0

     

    a=5; b=2;
      printf(“%d / %d = %d”, a, b, a/b);
      printf(“%d / %d = %f”, a, b, (double)a/b);

     


     

    5. 연산자 우선순위

    우선순위 연산자 결합방향 설명
    1 ( ) [ ] - > . 1차연산자
    2 ++ -- + 부호 부호 ~ ! * & cast 단항연산자
    3 * / % 산술연산자
    4 + - 산술연산자
    5 << >> 이동연산자
    6 < <= > >= 관계연산자
    7 == != 관계연산자
    8 & 비트연산자
    9 ^ 비트연산자
    10 | 비트연산자
    11 && 논리연산자
    12 || 논리연산자
    13 ?: 삼항연산자
    14 = += -= *= /= %= &= |= ^= <<= >>= 대입연산자

     

     


     

     

    평가하기

     

    Q1. 7 << 2 의 연산결과는 무엇인가?


    ① 24
    ② 14
    ③ 28
    ④ 32

     

    왼쪽으로 쉬프트 연산은 2N을 곱한 결과입니다.




    Q2. 7을 2로 나눈 결과를 실수 형태로 얻고자 할 때, 적절하지 않은 문장은 무엇인가?


    7/2.0
    ② 7/2
    (double) 7 /2
    ④ 7 / (double) 2

     

    정수와 정수의 연산결과는 정수입니다.

     



    Q3. 10 / 2 와 10%2의 연산결과 짝으로 알맞은 것은 무엇인가?


    ① 5.0 - 0
    5 - 5
    ③ 5 - 0
    ④ 5.0 - 0.0

    연산 결과 정수로 몫과 나머지가 출력됩니다.

     

     

     


     

     

     

    학습정리

     

    1. 다양한 연산자

    • 산술 연산자로 +, -, *, /, %가 있음

    • 크기 비교에 사용되는 관계연산자로 <, <, <=, >=, !=, ==가 있음

    • 논리 연산자로 && , ||, ! 연산자를 사용함

    • 증감 연산자에는 연산자의 위치에 따라서 전위형과 후위형이 있음

     

    2. 기타 연산자

    • 비트간의 연산으로 비트연산자가 있음

    • 임시적인 형변환을 위하여 형변환 연산자를 사용할 수 있음

    • 연산자의 우선 순위에 따라 연산이 이루어짐

     

    댓글