004. OPERATOR

Posted on by pkchan

004-01 // ARITHMETIC OPERATORS

operator meaning of operator
+ 더하기 혹은 플러스 기호 / addition or unary plus
빼기 혹은 마이너스 기호 / subtraction or unary minus
* 곱하기 / multiplication
/ 나누기 / division
% 나머지 / remainder after division

상수 혹은 변수, 숫자를 계산할 때 사용합니다. 자료형이 정수일 경우 나눗셈은 몫을 구하는 용도로 사용합니다. 나눗셈을 할 경우에는 실수형 자료형을 선택해야 합니다.

/*
example 004-01
C language arithmetic operator
*/

#include <stdio.h>

int main (void) {
          
          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("a를 b로 나눈 나머지는 = %d \n",c);

          return 0;

}

004-02 // INCREMENT, DECREMENT OPERATORS

operator meaning of operator
+ 1을 증가 / increases the value by 1
1을 가감 / decreases the value by 1

증감 혹은 가감 연산자 사용 시 변수의 앞에 사용하는 경우와 뒤에 사용하는 경 우에는 차이가 있습니다.

/*
example 004-02
C language increment, decrement operator
*/

#include <stdio.h>

int main (void) {

          int a = 5, b = 7, c = 6, d = 3;

          printf("%d\n",a++); // 변수의 값인 5를 출력하고 1을 더함
          printf("%d\n",++b); // 변수의 값에 1을 더하고 8을 출력함
          printf("%d\n",c--); // 변수의 값인 6을 출력하고 1을 뺌
          printf("%d\n",--d); // 변수의 값에서 1을 빼고 2를 출력함
          
          return 0;

}

004-03 // ASSIGNMENT OPERATORS

operator example same as
= 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

변수에 특정 값을 할당 혹은 대입할 때 사용합니다.

/*
example 004-03
C language assignment operator
*/

#include <stdio.h>

int main (void) {

          int a = 5, c;

          c = a;
          printf("c = %d \n", c); //c = 5
          
          c += a; // c = c + a
          printf("c = %d \n", c); //c = 10

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

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

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

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

          return 0;

}

004-04 // RELATIONAL OPERATORS

operator meaning of operator example
== 같으면 equal to 5 == 3 returns 0
> 크면 greater than 5 > 3 returns 1
< 작으면 less than 5 < 3 returns 0
!= 같지않으면 not equal to 5 != 3 returns 1
>= 크거나 같으면 greater than or equal to 5 >= 3 returns 1
<= 작거나 같으면 less than or equal to 5 <= 3 returns 0

관계연산자는 두 피연산자 사이의 관계를 비교하여 참(true) 일 경우 1을 리턴하 고 거짓(false) 일 경우 0을 리턴합니다.

/*
example 004-04
C language relational operator
*/

#include <stdio.h>

int main (void) {

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

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

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

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

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

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

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

          return 0;

}

004-05 // LOGICAL OPERATORS

operator meaning of operator example
&& logical AND 양쪽 모두 참이면 참(true) (5==3 && 3==3) equal to 0
|| logical OR 둘중 하나 이상 참이면 참(true) (5==3 && 3==3) equal to 1
! logical NOT 거짓이면 참(true) !(5==3) equal to 1

논리연산자 &&(AND)는 두 피연산자가 모두 참이면 1이 되고 ||(OR)는 둘 중 하 나 이상이 참이면 1, !(NOT)은 거짓일 경우 1 참일 경우 0이 됩니다.

/*
example 004-05
C language logical operator
*/

#include <stdio.h>

int main (void) {

          int a = 5, b = 5, c = 10, result;
          
          result = (a==b) && (c<b);
          printf("(a==b) && (c<b) equals to %d \n", result);

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

          result = (a==b) || (c>b);
          printf("(a==b) || (c>b) equals to %d \n", result);

          result = (a!=b) || (c>b);
          printf("(a!=b) || (c>b) equals to %d \n", result);

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

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

          return 0;

}

004-06 // BITWISE OPERATORS

operator meaning of operator
& 비트의 AND연산 // bitwise AND
| 비트의 OR연산 // bitwise OR
^ 비트의 XOR연산 // bitwise XOR
~ 비트의 반전연산 // bitwise complement
<< 왼쪽으로 비트 이동 // shift left
>> 오른쪽으로 비트 이동 // shift right

비트 연산은 0과 1로 이루어진 2진수의 비트 단위의 연산입니다.

/*
example 004-06
C language bitwise operator
*/

&연산자

1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0
1100 & 1010 = 1000

|연산자

1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
1100 & 1010 = 1110

^연산자

1 | 1 = 0
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
1100 & 1010 = 0110

~연산자

a = ~1100;
a 값은 0011

&lt;&lt;연산자

101011<<2 = 101100

&gt;&gt;연산자

101011>>2 = 111010

004-07 // TERNARY OPERATOR

(조건) ? (참(true)일때 값) : (거짓(false)일때 값);

조건이 있는 삼 항 연산자입니다. 조건이 참일 때 :의 왼쪽 값을, 거짓일 때 :의 오 른쪽 값을 반환합니다. 이는 간단한 if 조건문을 대체할 수 있습니다.

/*
example 004-07
C language ternary operator
*/

#include <stdio.h>

int main (void) {

          int a = 5, b = 3;
          int c = 4, d = 5, e;

          (a == b)?printf("true\n"):printf("false\n");

          e = (c != d)?13:15;

          printf("%d\n",e);

          return 0;

}

004-08 // SIZEOF OPERATOR

sizeof(variable or data type);

변수 혹은 자료형의 메모리의 크기를 반환하는 함수입니다. 각각 자료 형의 크기는 시스템마다 다를 수 있습니다.

/*
example 004-08
C language sizeof operator
*/

#include <stdio.h>

int main (void) {

          int a, e[10];
          oat b;
          double c;
          char d;

          printf("Size of int = %lu bytes\n",sizeof(a));
          printf("Size of  oat = %lu bytes\n",sizeof(b));
          printf("Size of double = %lu bytes\n",sizeof(c));
          printf("Size of char = %lu byte\n",sizeof(d));
          printf("Size of e[10] = %lu bytes\n", sizeof(e));

          return 0;

}

003-04 // REVIEW EXERCISES

1. 두 자리의 정수를 입력받아 일의 자리와 십의 자리를 분리하여 출력 하세요.

두자리의 정수를 입력하세요. : 34
일의 자리는 4, 십의 자리는 3입니다.

Leave a Reply