본문 바로가기
IT/C

C언어 연산자 1

by -_-* 2021. 1. 1.
반응형

 안녕하세요 :) 이미보라입니다. 

지난 포스트에서 우리는 C언어의 자료와 자료형에 대해서 알아봤습니다. 

 

 

 

오늘은 C언어가 지원하는 연산자를 살펴보도록 합시다. 

 

 

연산자

연산자란 우리가 흔히 수학식에서 만나볼 수 있는 기호들을 떠올리면 됩니다. 연산자의 기능은 기호마다 정의된 연산이 있고, 연산자를 만나면 정의되어진 연산을 수행합니다. 이때 연산의 대상이 되는 상수 또는 변수를 피연산자라고 합니다.  그리고 우리는 어떤 연산을 수행하기 위해서 피연산자와 연산자를 조합해내는 결과를 식 이라고 부릅니다. 

 

 

설명

1

상수로 구성된 식

x

변수로 구성된 식

sin(x)

함수 호출로 구성된 식

y = 2 *3.14

피 연산자와 연산자의 조합으로 구성된 식

 

 

C언어에서 제공하는 연산자의 종류 중에 오늘은 대입연산자, 산술연산자, 관계연산자, 논리연산자, 비트연산자까지 살펴보도록 하겠습니다. 

 

대입연산자

연산자의 우변의 값을 좌변의 변수에 대입하여 저장하는 연산자로 형식은 아래와 같습니다. 
변수명 = 식 ; 

 

산술연산자

산술연산자란 덧셈, 뺄셈, 곱셈, 나눗셈, 나머지 연산을 담당하는 연산자를 말합니다. 

연산자

의미

예의 결과

+

덧셈

1+2

3

-

뺄셈

4-2

2

*

곱셈

2*2

4

/

나눗셈

5/2

2

%

나머지

5%2

1

 

 

관계연산자

두 개의 값이나 식의 대소관계를 비교하여 결과를 나타내는 연산자를 말합니다. 

연산자

의미

예의 결과

>

크다

2 > 7

0 (거짓)

<

작다

2 < 7

1 ()

>=

크거나 같다

2 >= 7

0(거짓)

<=

작거나 같다

2 <= 7

1()

==

같다

2 == 7

0(거짓)

!=

같지 않다

2 != 7

1()

 

 

논리연산자

두 피 연산자 간의 논리적 관계의 결과를 참과 거짓으로 나타내는 연산자입니다. 
참과 거짓을 판별할 때 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

 

 

비트연산자

2진수를 bit 단위로 연산하는 연산자입니다. 

연산자

의미

설명

&

비트곱(AND)

비트 단위 AND 연산

두 비트 모두 1이면 1

|

비트합(OR)

비트단위 OR 연산

둘 중 한 비트만 1이면 1

^

배타적 비트합

비트단위 XOR 연산

두 비트가 다르면 1, 같으면 0

!

논리부정(NOT)

비트단위 NOT 연산

비트가 1이면 0, 0이면 1

x<<n

왼쪽 shift

x의 2진수 비트열을 왼쪽으로 n bit만큼 이동

x>>n

오른쪽 shift

x의 2진수 비트열을 오른쪽으로 n bit만큼 이동

 

비트 연산자의 예

 

 

연산자 예제코드 

#include <stdio.h>
int main(void) {
int x= 5; 
int y= 3; 
int result = 0; 
printf("#######산술연산자####### \n");
printf("덧셈 : %d \n",x+y); 
printf("뺄셈 : %d \n",x-y); 
printf("곱셈 : %d \n",x*y); 
printf("나눗셈 : %d \n",x/y); 
printf("나머지 : %d \n",x%y);

printf("#######관계연산자####### \n");
printf("x==y : %d \n",x==y); 
printf("x!=y : %d \n",x!=y); 
printf("x<=y : %d \n",x<=y); 
printf("x>=y : %d \n",x>=y); 
printf("x<y : %d \n",x<y); 
printf("x>y : %d \n",x>y);

printf("####### 논리연산자####### \n");
printf("1&&0 : %d \n",1&&0); 
printf("1||0 : %d \n",1||0); 
printf("!1 : %d \n",!1); 

printf("####### 비트연산자####### \n");
printf("10&7 : %d \n",10&7 ); 
printf("10|7 : %d \n",10|7); 
printf("10^7 : %d \n",10^7); 
printf("10<<2 : %d \n",10<<2); 
return 0;
}

오늘 우리가 살펴본 C언어의 연산자 중 대입연산자, 산술연산자, 관계연산자, 비트연산자에 대한 예제 코드입니다.

각 연산자가 사용된 식의 값의 결과를 자세히 살펴본다면 위의 연산자들을 이해할 수 있을 것입니다. 

다음 포스트에서는 오늘 우리가 다루지 않았던 C언어 연산자인 증감연산자, 조건연산자, 컴마연산자, cast연산자, sizeof연산자, 복합대입연산자를 알아보도록 하겠습니다. 감사합니다. 

반응형

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

C언어 조건문  (0) 2021.01.10
C언어 연산자2  (0) 2021.01.02
C언어 표준입출력  (0) 2020.12.31
c언어 자료형  (0) 2020.12.31
C언어 변수와 상수  (0) 2020.12.30

댓글