본문 바로가기
Program/C

6. C언어 프로그래밍 연산자

by Murciellago 2021. 10. 12.
반응형
SMALL

이 장에서는 C언어 프로그래밍의 다양한 연산자에 대해 작성할 것이다

연산자는 값 또는 변수에 대해 작동하는 기호이다

C언어에서는 다양한 연산을 수행할 수 있는 광범위한 연산자가 있다

 

    ex) 덧셈을 수행하는 연산자 +

 

1. C언어 산술 연산자

   - 산술 연산자는 숫자값(상수 및 변수)에 대해 더하기, 빼기, 곱하기, 나누기 등의 수학 연산을 수행

 

연산자 의미
+ 더하기 또는 단항 더하기
- 빼기 또는 단항 빼기
* 곱셈
/ 분할
% 나눗셈 후 나머지(모듈로 나눗셈)

 

     ex) 산술 연산자

         #include <stdio.h>

         int main()

         {

             int a = 9, b = 4, c;

 

             c = a+b;

             printf("a+b = %d \n", c);

             c = a-b;

             printf("a-b = %d \n", c);

             c = a*b;

             printf("a*b = %d \n", c);

             c = a/b;

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

             c = a%b;

             printf("Remainder when a divided by b = %d \n", c);

 

             return 0;

         }

 

      output) a+b = 13

                 a-b = 5

                 a*b = 36

                 a/b = 2

                 Remainder when a divided by b = 1

 

* 연산자 +, - 그리고 * 계산하여 덧셈, 뺄셈, 곱셈은 각각 사용자가 예상했을 수도 있다

* 일반적인 계산에서 9/4 = 2.25이지만 출력값은 2가 나온다

* 두 변수 모두 b값이 int 유형인 정수값이라 출력도 정수값으로 나온다

* 컴파일러는 2.25 값인 소수점 이하의 항을 무시한 값을 출력한다

* % 연산자는 나머지를 계산한다

* a = 9에서 b = 4로 나눌때 나머지는 1이다

* % 연산자는 정수와 함께 사용할 수 있다

 

2. C언어 증가 및 감소 연산자

   - C언어 프로그래밍에는 피연사자(상수 또는 변수)의 값을 1++씩 1-- 변경하는 두개의 연산자인 증가 감소가 있음

   - ++은 1만큼 증가시키는 반면 --은 1만큼 감소시킴

   - 이 두 연산자는 단항 연산자이므로 단일 피연사자에서만 작동

 

     ex) include <stdio.h>

          int main()

          {

              int a =10, b = 100;

              float c = 10.5, d = 100.5;

 

              printf("++a = %d \n", ++a");

              printf("--b = %d \n", --b");

              printf("++c = %d \n", ++c");

              printf("--d = %d \n", --d");

 

              return 0;

          }

 

     output) ++a = 11

                --b = 99

                ++c = 11.500000

                --d = 99.500000

 

* 여기서++ 연산자 및 --연산자는 접두사로 사용된다

* 두연산자는 a++ 및 a-- 같은 접미사로도 사용할 수 있다

 

3. C언어 할당 연사나자

   - 일반적인 할당 연산자

연산자 예시 동일
= a = b a = b
+= a += b a = a + b
-= a -= b a = a - b
*= a *= b a = a * b
/= a /= b a = a / b
%= a %= b a = a % b

 

     ex) #include <stdio.h>

          int main()

          {

              int a = 5, c;

 

              c = a;

              printf("c = %d\n", c);

              c += a;

              printf("c = %d\n", c);

              c -= a;

              printf("c = %d\n", c);

              c *= a;

              printf("c = %d\n", c);

              c /= a;

              printf("c = %d\n", c);

              c %= a;

              printf("c = %d\n", c);

 

              return 0;

          }

 

      output) c = 5

                 c = 10

                 c = 5

                 c = 25

                 c = 5

                 c = 0

 

4. C언어 관계 연산자

   - 관계 연산자는 두 피연산자 간의 관계를 확인

   - 관계가 참이면 1을 반환

   - 관계가 거짓이면 0을 반환

 

연산자 의미 예시 결과
== 같다 5==3  0
> 초과 5>3 1
< 미만 5<3 0
!= 같지않음 5!=3 1
>= 이상 5>=3 1
<= 이하 5<=3 0

 

     ex) 관계 연산자

         #include <stdio.h>

         int main()

         {

             int a = 5, b = 5, c = 10;

 

             printf("%d == %d is %d \n", a, b, a==b);

             printf("%d == %d is %d \n", a, c, a==c);

             printf("%d > %d is %d \n", a, b, a>b);

             printf("%d > %d is %d \n", a, c, a>c);

             printf("%d < %d is %d \n", a, b, a<b);

             printf("%d < %d is %d \n", a, c, a<c);

             printf("%d != %d is %d \n", a, b, a!=b);

             printf("%d != %d is %d \n", a, c, a!=c);

             printf("%d >= %d is %d \n", a, b, a>=b);

             printf("%d >= %d is %d \n", a, c, a>=c);

             printf("%d <= %d is %d \n", a, b, a<=b);

             printf("%d <= %d is %d \n", a, c, a<=c);

 

             return 0;

         }

 

      output) 5 == 5 is 1

                 5 == 10 is 0

                 5 > 5 is 0

                 5 > 10 is 0
                 5 < 5 is 0

                 5 < 10 is 1

                 5 != 5 is 0

                 5 != 10 is 1

                 5 >= 5 is 1

                 5 >= 10 is 0

                 5 <= 5 is 1

                 5 <= 10 is 1

 

5. C언어 논리 연산자

   - 논리 연산자를 포함하는 표현식은 표현식의 결과가 참인지 거짓인지에 따라 0 또는 1을 반환

   - 논리 연산자는 일반적으로 C언어 프로그래밍에서 의사 결정에 사용

 

연산자 의미 예제 결과
&& 논리 AND.
모든 피연산자가 참인 경우에만 참
c = 5이고 d = 2이면
표현식 ((c==5) && (d>5))
0
|| 논리적 OR.
피연산자 중 하나가 참인 경우에만 참
c = 5이고 d = 2이면
표현식 ((c==5) || (d>5))
1
! 논리적 NOT.
피연산자가 0인 경우에만 참
c = 5이면
표현식 !(c==5)
0

 

* Logic 참고사항

   - Logic AND 연산자

논리연산자 AND
LOGIC 회로

   - Logic OR 연산자

논리연산자 OR
Logic 회로

   - Logic NOT 연산자

논리연산자 NOT

 

Logic 회로

     ex) 논리 연산자

         #include <stdio.h>

         int main()

         {

             int a = 5, b = 5, c = 10, result;

 

             result = (a == b) && (c > b);

             printf("(a == b) && (c > b) is %d \n", result);

 

             result = (a == b) && (c < b);

             printf("(a == b) && (c < b) is %d \n", result);

 

             result = (a == b) || (c < b);

             printf("(a == b) || (c < b) is %d \n", result);

 

             result = (a != b) || (c < b);

             printf("(a != b) || (c < b) is %d \n", result);

 

             result = !(a != b);

             printf("!(a != b) is %d \n", result);

 

             return 0;

         }

 

      output) (a == b) && (c > b) is 1

                 (a == b) &&(c < b) is 0

                 (a == b) || (c < b) is 1

                 (a != b) || (c < b) is 0

                 !(a != b) is 1

                 !(a == b) is 0

 

* (a == b) && (c > b) 두 피연산자 (5 == 5)및 (10 > 5)가 모두 1(참) 이므로 1로 출력된다

* (a == b) && (c < b) 두 피연산자 중에 피연산자 (10 < 5)가 0(불) 이므로 0으로 출력된다

* (a == b) || (c < b)  두 피연산자 중에 피연산자 (5 == 5)가 1(참) 이므로 1로 출력된다

* (a != b) || (c < b)  두 피연산자 중에 피연산자 (5 != 5)와 (10 < 5)가 모두 0(불) 이므로 0으로 출력된다

*  !(a != b) 피연산자에서 (5 != 5)가 0(불) 이므로 1(참)로 출력된다

* !(a == b) 피연산자에서 (5 == 5)은 1(참) 이므로 !(a == b) 0(불)으로 출력된다

 

6. C언어 비트 연산자

   - 비트 연산자는 C언어 프로그래밍에서 비트 수준 연산을 수행하는데 사용

연산자 의미
& 비트 AND
| 비트 OR
^ 비트 배타적 OR
~ 비트 보수
<< 왼쪽으로 이동
>> 오른쪽으로 이동

 

7. 기타 연산자

   1) 쉼표 연산자

   - 쉼표 연산자는 관련 표현식을 함계 연결하는데 사용

 

     ex) int a, c = 5, d;

 

   2) sizeof 연산자

   - sizeof 데이터(상수, 변수, 배열 구조 등) 크기를 리턴하는 단항 연산자

 

     ex) sizeof 연산자

        #include <stdio.h>

        int main()

        {

            int a;

            float b;

            double c;

            char d;

            

            printf("Size of int = %lu Bytes \n", sizeof(a));

            printf("Size of float = %lu Bytes \n", sizeof(b));

            printf("Size of double = %lu Bytes \n", sizeof(c));

            printf("Size of char = %lu Bytes \n", sizeof(d));

 

            return 0;

        }

 

     outout) Size of int = 4 Bytes

               Size of int = 4 Bytes

               Size of int = 8 Bytes

               Size of int = 1 Bytes

반응형
LIST

'Program > C' 카테고리의 다른 글

8. C언어 for 문  (0) 2021.10.14
7. C언어 if~else 문  (0) 2021.10.13
5. C언어 입력 출력(I/O)  (0) 2021.10.11
4. C언어 데이터 유형  (0) 2021.10.11
3. c언어 변수, 상수 및 리터럴  (0) 2021.10.11

댓글