본문 바로가기

개발/C&C++

(C/C++ 속성 정리) 3일 차 : 연산자

안녕하세요 넬다이입니다.

 

오늘은 3일차 속성 정리를 시작하겠습니다 

 

연산자에는 종류가 많은데요 차근차근 살펴보겠습니다.

 

 

산술 연산자

+, -, *, / 같은 것들을 산술 연산자 라고 하며
우리가 일반적으로 사용하는 연산자 우선순위를 따른다.


% 나머자 연산자

몫을 제외한 나머지를 구해 주는 연산자.

cout << 13 % 6 << endl;

출력 값은 1이 되겠죠?


sizeof 연산자

타입의 크기를 알아내는 연산자

cout << sizeof(char) << endl; 
cout << sizeof(short) << endl; 
cout << sizeof(int) << endl; 
cout << sizeof(float) << endl; 
cout << sizeof(double) << endl;

출력값은

1

2

4

4

8

가 나오겠죠?


<< >> 삽입 연산자, 추출연산자 라고 부름

원래는 쉬프트 연산자입니다.
하지만 c++ 에서는 연산자 오버로딩을 통해 입출력 스트림의 용도로 정의되어 사용한다.

 

예를들어서

cout << Test << endl;

cin >> Test;

이런식으로 얼래는 쉬프트 연산자 이지만 연산자 오버로딩을 통해서 입출력 스트림 용도로 정의되어 사용한다.

연산자 오버로딩은 후에 알아보도록 하자.


= 대입 연산자 

= 을 기준으로 우측에 있는 피연산자를 좌측에 있는 피연산자에 대입하는 형태 입니다.
기존 수학에서의 "같다" 라는 의미가 아니니깐 주의해야합니다 꼭 기억해주세요.


int iTest;
iTest = 10;


관계 연산자

값과 값과의 관계에 대해서 판별하는데 사용한다.

int iAA = 0; 
int iBB = 10; 

cout << (iAA < iBB) << endl; 
cout << (iAA <= iBB) << endl; 
cout << (iAA > iBB) << endl; 
cout << (iAA >= iBB) << endl; 
cout << (iAA == iBB) << endl;

출력값으로는

true

true

false

false

false

로 출력됩니다.


논리연산자

조건들을 모두 만족을 하거나 일부만 만족하는 경우를 구별하는 데에 사용한다.

논리연산자에는 && , || , !=등이 있다.

&& 연산자 : AND 연산자

둘 다 참일 경우에 참을 반환하는 연산자 입니다.

bool bAA = true; 
bool bBB = false; 

cout << (bAA && bBB) << endl; 
cout << (bAA && false) << endl; 
cout << (true && true) << endl; 
cout << (false && false) << endl;

출력 값으로는

false

false

true

true

로 출력됩니다.

|| 연산자 : OR 연산자 

둘 중 하나만 true 여도 true 가 나오는 연산자입니다.
둘 다 false 면 false 가 나오고 둘 다 true 면 true 가 나온다.

cout << (true || false) << endl; 
cout << (false || true) << endl; 
cout << (true || true) << endl; 
cout << (false || false) << endl

출력 값으로는

true

true

true

false

로 출력됩니다.

 

!= 연산자 : NOT 연산자

참이냐 거짓이냐에 대한 결과값을 반대로 만드는 연산자이다.

쉽게 말해서 다르냐를 묻는 연산자이다

int iAA = 10;
int iBB = 10;

cout << (iAA != iBB) << endl;*/

출력 값으로는 

false

로 출력됩니다


비트단위 논리 연산자

& | ~ ^ : and, or, not, xor 연산자.

<<, >> : 쉬프트 연산자.

xor 은 비교하는 두 비트가 같을 때는 false 다를 때는 true 를 반환합니다.

A = 1110 1010 B = 0101 0110
& 비트단위 AND 연산자 A&B = 0100 0010
| 비트단위 OR 연산자 A|B = 1111 1110
~ 비트단위 NOT 연산자 A~B = 1011 1100
^ 비트단위 XOR 연산자 A^B = 0100 0010
<< 비트단위 왼쪽으로 1비트 이동 A << 1 = 1101 0100
>> 비트단위 오른쪽 1비트 이동 A >> 1 = 0111 0101

증감연산자

++, --

증감 연산자가 뒤에 오는 것을 후위 연산, 혹은 후치 연산 이라고 한다.

앞에 오는 경우는 전위 연산, 혹은 전치 연산 이라고 한다.

int iAA = 0;

iAA++;
cout << iAA << endl; // 1인상태

iAA--;
cout << iAA << endl; // 0인 상태

++iAA;
cout << iAA << endl; // 1인 상태

--iAA;
cout << iAA << endl; // 0인 상태

//증감 연산자가 뒤에 오는 것을 후위 연산, 혹은 후치 연산 이라고 한다.
//앞에 오는 경우는 전위 연산, 혹은 전치 연산 이라고 한다.

cout << ++iAA << endl; // 1인 상태

cout << iAA++ << endl; // 1인상태

cout << iAA << endl; // 2인 상태

전위 연산 혹은 후위 연산에 따라 결과물이 달라질 수 있음에 유의할 것.


자 이렇게 오늘은 연산자에 대해서 알아보았습니다.

 

C와 C++에는 많은 연산자들이 있는데요 대부분 다른 언어에서도 공통되게 사용하고 있으니

꼭 기억해두시길 부탁드립니다.

 

[개발/C&C++] - (C/C++ 속성 정리) 2일 차 : 자료형 타입과 표현 범위 및 변수 선언

[개발/C&C++] - (C/C++ 속성 정리) 1일 차 : 주석, cout,cin은 무엇인가?