Steady Blog

7. 연산자 (연산자 우선순위, 산술, 증감,대입,관계, 논리, 비트) 본문

Programing/C언어

7. 연산자 (연산자 우선순위, 산술, 증감,대입,관계, 논리, 비트)

우유먹고쑥 2012. 9. 3. 23:53

*연산자

 정의 : 계산하거나 무엇인가를 표현할 때 사용되어지는 문자를 말한다.

 

 1. 연산자 우선 순위     //사진자료 필요 

 

 2. 산술 연산자  

      ㄱ. 곱셈(*)과 나눗셈(/)과 나머지(%) 연산자는 덧셈(+),뺄셈(-) 연산보다 우선 순위이다.

      ㄴ. 나누기(/)연산자 일 경우 연산을 실시하는 양족 항에서 한쪽이라도 실수가 나오면 실수로 처리한다.

      ㄷ. 나머지(%)연산자에서는 양쪽 항이 반드시 정수 데이터야 한다.

 

 3. 증감 연산자

 정의 : 어떤 항 값을 1증가 또는 감소시켜 주는 연산자.

 모양 : ++a,--a, a++,a-- 

      ex)

     void ch4_test()
     {
           int a = 5, b;
           b = a++;
           printf("a = %d, b = %d\n", a,b);
     }

          결과 값 -----> a = 6, b =5

 

     ex) 증감 연산자를 정확히 이해 할수 있는 예제

     void ch4_test()
     {
           int h = 5;
           int s;

           s= h-- + ++h;      // h = h+1;   =>  s = h+h;   =>  h= h-1;

           printf("h = %d  s = %d\n",h,s);
           s = h-- + h--;      // s = h+h;  =>  h = h-1;   =>  h = h-1;
           printf("h = %d  s = %d\n",h,s);
     }
 

          결과 값 -----> h = 5, s = 12

                                h = 3  s = 10

 

 4. 대입 연산자

 정의 : 변수 값에 변화를 주기 위한 목적으로 사용

 역할

         1.변수에 상수값을 저장시키는데 사용

         2. 여러개의 변수를 같은 값으로 치환할 수 있음.

         3. 단순 치환 연산자의 결합 순서는 우측에서 좌측으로 수행

      ex)

         int a=b=c=5;

         <해석>

         1. c=5

         2. b=c=5   b의 값이 c가 됨   / 즉, b = 5  

         3. a=b=5   a의 값이 b가 됨   / 즉, a = 5  

 5. 관계 연산자           // 사진 자료 필요

 역할

          1. 좌우 피연산자들을 비교해서 참(1)과 거짓(0)을 구하는 연산자.

          2. 비교하는 항의 자료형이 서로 다를 경우에는 자료형이 큰 쪽으로 변환되어 비교.

 

 6. 논리 연산자

 

          1. 양쪽 항이 참인지? 거짓인지에 의한 참(1)이나 거짓(0)값을 발생시키는 연산자.
          2. 우선순위 :: &&이 ||보다 순위가 높다.
          3. 일반 논리 연산의 결과 값은 참일때는 1이 발생하고 거짓일 때에는 0이 발생한다.
          4. && 연산에서는 항 1이 거짓이면 항2는 실행되지 않음
             ||   연산
에서는 항 1이 참이면 항2는 실행되지 않음

          5. 참 : 1 // '0'이 아닌 수

             거짓 : 0   


 정리 

                             AND           OR         NOT 
         
a     b      a&&b      a||b       !a
          0       0           0              0             1
          0       1           0              1             1
          1       0           0              1             0
          1       1           1              1             0

 

 7. 비트 연산자

 

          1. 비트와 비트가 대응되어 연산처리가 되어지는 연산자.
          2. 양쪽 항이 정수형 데이터야 함
          3. 비트 논리 연산자는 일반 논리 연산자보다 우선 순위가 높음

 

정리 
                           
  AND           OR         NOT       XOR

          a     b      a&&b      a||b       ~a       a^b

          0       0           0              0             1             0
          0       1           0              1             1             1
          1       0           0              1             0             1
          1       1           1              1             0             0

 ex)

        3 = 0000 0011

        5 = 0000 0101

   3 & 5 = 0000 0001

 

 

     ㄱ. 10진수는 2진수로 만드는 방법        //사진자료 필요

            1. 10진수를 2로 나눠서 만드는 방법

            2. 10진수를 2의 X승을 이용하여 2진수화 하는 방법

         

     ㄴ. 2진수를 10진수로 만드는 방법

            1. 2진수의 자릿수를 2^n하여 나온 값을 더하는 방법

 

   # 1의 보수와 10의 보수

 

 8. 이동 연산자

    1. 비트를 이동시는 연산자

     2. 양쪽 항(이동 대상체와 이동 비트 수)은 정수형 데이터여야 함

     3. 이동되고 남은 빈 비트 공간에는 0값이 채워짐

      단, 이동 대상체가 signed 형이면서 우측 이동을 했을 경우에는 좌측 비트에 빈 공간이 남게 되는데 이 빈 비트 공간에 대상체의 최상위 비트 값이 모두 채워지며 unsigned형이면 0 값이 채워짐.

 

 

 9. 조건(상항) 연산자

  형식 : (항1)? 항2 : 항3

 

1. 항 1이 참이면 항2를 수행, 거짓이면 항3을 수행

2.  항에는 상수,변수,수식,함수 등을 기재.

 

ex)

 (a<2)? a='참': a='거짓';

 

 10. sizeof 연산자

  형식 : 자료형, 상수, 변수, 수식에 대한 기억장소의 크기(byte)를 구한다.

           

'Programing > C언어' 카테고리의 다른 글

9. 반복문  (0) 2012.09.03
8. 제어문  (0) 2012.09.03
6.입출력 함수 정리.  (0) 2012.09.03
5. 입력 함수( getchar() , getche(), getch(), gets(), scanf() )  (0) 2012.09.03
4. 출력함수 (putchar, puts, printf)  (0) 2012.09.03