Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

Un_Woo

[C] 4. 연산자 본문

Language/C Language

[C] 4. 연산자

언우s 2021. 1. 21. 20:40

연산자

연산자는 값을 계산하거나 비교하는 역할을 합니다.

  연산자
대입 연산자 =
산술 연산자 +, -, *, /, %
비교 연산자 >, <, >=, <=, ==, !=
논리 연산자 &&, ||, !
할당 연산자 +=, -=, *=, /=, %= 등
참조 연산자 *, &
비트 연산자 &, |, ^, <<, >>, ~

C언어는 표와 같은 연산자들을 사용합니다.

 

대입 연산자

a=1;

 

대입 연산자는 변수에 값을 넣는 역할을 합니다.

=을 기준으로 오른쪽에 있는 값을 왼쪽에 있는 변수에 넣습니다.

 

산술 연산자

산술 연산자는 수학에서 사용하는 연산자들과 비슷합니다.

연산자 기능
+ 더하기
- 빼기
* 곱하기
/ 나누기(몫)
% 나머지

 

num = 12 + 13;      //결과 25
num = 12 - 13;       //결과 -1
num = 12 * 13;       //결과 156
num = 13 / 12;       //결과 1
num = 13 % 12;      //결과 1

/는 몫을, %는 나머지를 구합니다.

 

산술연산자의 +, - 를 활용한 증감연산자가 있습니다.

'++', '--'를 변수의 앞이나 뒤에 붙이는 연산자입니다.

'++'을 붙이면 1을 더하고, '--'를 붙이면 1을 뺍니다.

증감연산자는 위치에 따라 우선순위가 달라집니다.

a=1, b=0;
a++;          //a=2
++b;          //b=1

a--;            //a=1
--b;            //b=0

b=a++;       //a=2, b=1
b=a--;         //a=1, b=2

b=++a;       //a=2, b=2
b=--a;         //a=1, b=1

증감연산자가 앞에 붙었을 경우 증감 계산 후, 값을 대입합니다.

증감연산자가 뒤에 붙었을 경우 값을 대입 후, 증감 계산을 합니다.

 

비교 연산자

관계 연산자는 두 값의 크기를 비교하는 연산자입니다.

연산자 기능
> 왼쪽이 오른쪽보다 크면 1, 작으면 0
< 왼쪽이 오른쪽보다 크면 0, 작으면 1
>= 왼쪽이 오른쪽보다 크거나 같으면 1, 작으면 0
<= 왼쪽이 오른쪽보다 크면 0, 작거나 같으면 1
== 왼쪽과 오른쪽이 같으면 1, 다르면 0
!= 왼쪽과 오른쪽이 같으면 0, 다르면 1
a=1, b=3, c=0;

c = a>b;       //c=0
c = a<b;       //c=1
c = a>=b;     //c=0
c = a<=b;     //c=1
c = a==b;     //c=0
c = a!=b;      //c=1

C언어에서 0이 아닌 값은 참(True), 0은 거짓(False)로 판단합니다.

이것과 비교연산자는 나중에 조건문이나 반복문에서 활용됩니다.

 

논리 연산자

논리연산자는 두 값을 논리로 연산하는 연산자입니다.

연산자 논리 기능
&& AND 양쪽이 모두 참이면 참
|| OR 양쪽 중 하나라도 참이면 참
! NOT 참이면 거짓, 거짓이면 참

 

a=1, b=2, c=0;

c = (a<b) && (a<=b);        //c=1
c = (a>b) && (a<b);          //c=0

c = (a>b) || (a<b);             //c=1
c = (a>b) || (b==0);           //c=0

c = !(b==22);                   //c=1
c = !(a<b);                       //c=0

할당 연산자

대입연산과 산술연산을 같이 쓰는 연산자입니다.

연산자 기능
+= 왼쪽에 왼쪽 값과 오른쪽 값을 더해 대입
-= 왼쪽에 왼쪽 값에 오른쪽 값을 빼서 대입
*= 왼쪽에 왼쪽 값과 오른쪽 값을 곱해 대입
/= 왼쪽에 왼쪽 값에 오른쪽 값을 나눈 몫을 대입
%= 왼쪽에 왼쪽 값에 오른쪽 값을 나눈 나머지를 대입

 

a=1, b=2;
a+=b;        //a=3
a-=b;         //a=2
a*=b;         //a=4
a/=b;         //a=2
a%=b;        //a=0

할당 연산자는 대입연산과 산술연산을 합친 것이기 때문에 나누어 표현할 수도 있습니다.

위의 식의 경우, 다음과 기능이 같습니다.

a = a+b;
a = a-b;
a = a*b;
a = a/b;
a = a%b;

참조 연산자

참조 연산자는 메모리 주소와 관련된 연산자입니다.

연산자 기능
& 변수의 메모리 주소 참조
* 메모리 주소에 저장된 값 참조
a=1, b=0;
b = &a;        //a 변수의 메모리 주소가 b에 저장
b = *b;         //b에 저장된 메모리 주소가 가리키는 a의 값 저장

참조 연산자는 나중에 포인터를 배울 때, 자주 사용하게 됩니다.

지금은 크게 중요하지 않습니다.

비트 연산자

컴퓨터에서 모든 수는 2진수입니다.

01101011000처럼 2진수로 모든 것을 저장합니다.

그리고 2진수의 각 한자리가 1비트입니다.

비트연산자는 비트 단위로 연산하는 연산자입니다.

연산자 기능
& 비트 AND 연산
| 비트 OR 연산
~ 비트 NOT 연산
^ 비트 XOR 연산
<< 비트를 왼쪽으로 시프트
>> 비트를 오른쪽으로 시프트

 

a=0b0110, b=0b1011;        //변수 앞에 0b를 붙이면 2진수로 저장
c=0;
c = a & b;        //c = 0b0010
c = a | b;          //c = 0b1111
c = ~ a;           //c = 0b1001
c = a ^ b;        //c = 0b1101
c = a << 2;      //c = 0b1000
c = a >> 2;      //c = 0b0011

XOR 연산은 두 값이 같으면 0이, 다르면 1이 되는 연산입니다.

비트 연산은 비트를 한칸씩 이동시키는 연산입니다.

연산자 우선순위

연산자는 기본적으로 왼쪽에서 오른쪽 순서대로 연산됩니다.

연산자들은 하나의 식에 섞어 쓸 수가 있습니다.

연산자들을 복합적으로 사용할 때에는 수학처럼 우선순위가 적용되어 계산됩니다.

그리고 수학처럼 ()를 사용할 수 있습니다.

{}, []는 사용 불가능합니다.

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

[C] 3. 변수와 상수  (0) 2021.01.19
[C] 2. 자료형  (0) 2021.01.19
[C] 1. 코드의 의미  (0) 2021.01.19
[C] 0. Dev-C++ 설치  (0) 2021.01.19
Comments