연산자란 연산 대상이 되는 피연산자에 대한 연산을 수행하는 기호를 뜻한다.
C++에서 사용 가능한 연산자에는 산술 연산자, 관계 연산자, 논리 연산자, 증감 연산자, 대입 연산자, 그리고 비트 연산자가 있다.
산술 연산자
산술 연산자는 사칙연산의 연산자들과 나머지 연산자가 있다.
각 연산자의 정의는 다음과 같다.
유형 | 정의 |
+ | 덧셈 |
- | 뺄셈 |
* | 곱셈 |
/ | 나눗셈 |
% | 나머지 |
/*
* ----------------------------------------------------------------------------
* "THE BEER-WARE LICENSE" (Revision 42):
* <ggkids9211@gmail.com> wrote this file. As long as you retain this notice you
* can do whatever you want with this stuff. If we meet some day, and you think
* this stuff is worth it, you can buy me a beer in return Hyunjun Kim.
* ----------------------------------------------------------------------------
*/
#include
using namespace std;
int main()
{
int a = 5;
int b = 2;
int sum = a + b; //더하기
int sub = a - b; //빼기
int mul = a * b; //곱하기
int div = a / b; //나누기
int rem = a % b; //나머지
cout << "sum: " << sum << endl;
cout << "sub: " << sub << endl;
cout << "mul: " << mul << endl;
cout << "div: " << div << endl;
cout << "rem: " << rem << endl;
}
결과
sum: 7
sub: 3
mul: 10
div: 2
rem: 1
산술연산자가 연이어 사용되는 경우에는 아래와 같이 연산 우선순위를 적용한다.
1. 괄호 안의 연산자가 첫번째 우선순위를 가진다.
2. 곱셈, 나눗셈, 나머지 연산자가 그 다음 우선순위를 가진다.
3. 덧셈, 뺄셈 연산자가 그 다음 우선순위를 가진다.
4. 같은 우선순위의 연산자가 나열된 경우 좌측 연산자부터 먼저 처리한다.
관계 연산자
관계 연산자는 두 수를 비교하는 연산자이다.
주로 제어문에서 조건을 검사하기위해 많이 사용되며 true 혹은 false를 출력한다.
각 연산자의 정의는 다음과 같다.
유형 | 정의 |
== | 같다 |
!= | 다르다 |
> | 크다 |
>= | 크거나 같다 |
< | 작다 |
<= | 작거나 같다 |
/*
* ----------------------------------------------------------------------------
* "THE BEER-WARE LICENSE" (Revision 42):
* <ggkids9211@gmail.com> wrote this file. As long as you retain this notice you
* can do whatever you want with this stuff. If we meet some day, and you think
* this stuff is worth it, you can buy me a beer in return Hyunjun Kim.
* ----------------------------------------------------------------------------
*/
#include
using namespace std;
int main()
{
int a = 5;
int b = 2;
bool same = a == b; //같다
bool diff = a != b; //다르다
bool big = a > b; //크다
bool big_or_same = a >= b; //크거나 같다
bool small = a < b; //작다
bool small_or_same = a <= b; //작거나 같다
cout << "same: " << boolalpha << same << endl;
cout << "diff: " << boolalpha << diff << endl;
cout << "big: " << boolalpha << big << endl;
cout << "big_or_same: " << boolalpha << big_or_same << endl;
cout << "small: " << boolalpha << small << endl;
cout << "small_or_same: " << boolalpha << small_or_same << endl;
}
결과
same: false
diff: true
big: true
big_or_same: true
small: false
small_or_same: false
논리 연산자
논리 연산자는 And, Or, Not의 세가지 종류가 있다.
각 연산자의 정의는 다음과 같다.
유형 | 정의 |
&& | 그리고 (AND) |
|| | 혹은 (OR) |
! | 아닐때 (NOT) |
/*
* ----------------------------------------------------------------------------
* "THE BEER-WARE LICENSE" (Revision 42):
* <ggkids9211@gmail.com> wrote this file. As long as you retain this notice you
* can do whatever you want with this stuff. If we meet some day, and you think
* this stuff is worth it, you can buy me a beer in return Hyunjun Kim.
* ----------------------------------------------------------------------------
*/
#include
using namespace std;
int main()
{
bool AND = true && false;
bool OR = true || false;
bool excl = !true;
cout << "AND: " << boolalpha << AND << endl;
cout << "OR: " << boolalpha << OR << endl;
cout << "excl: " << boolalpha << excl << endl;
}
결과
AND: false
OR: true
excl: false
증감 연산자
증감 연산자는 변수의 값을 증가시키거나 감소시킬때 사용한다.
각 연산자의 정의는 다음과 같다.
유형 | 정의 |
++i | 연산 전에 i값 1 증가 |
i++ | 연산 후에 i값 1 증가 |
--i | 연산 전에 i값 1 감소 |
i-- | 연산 후에 i값 1 감소 |
/*
* ----------------------------------------------------------------------------
* "THE BEER-WARE LICENSE" (Revision 42):
* <ggkids9211@gmail.com> wrote this file. As long as you retain this notice you
* can do whatever you want with this stuff. If we meet some day, and you think
* this stuff is worth it, you can buy me a beer in return Hyunjun Kim.
* ----------------------------------------------------------------------------
*/
#include
using namespace std;
int main()
{
int i = 9;
cout << "i++: " << i++ << endl; //해당 연산 후에 값 증가
cout << "i: " << i << endl; //연산 이후에 값이 증가함.
i = 9;
cout << "++i: " << ++i << endl; //해당 연산 전에 값 증가됨.
i = 9;
cout << "i--: " << i-- << endl; //해당 연산 후에 값 감소
cout << "i: " << i << endl; //연산 이후에 값이 감소함.
i = 9;
cout << "--i: " << --i << endl; //해당 연산 전에 값 감소됨.
}
결과
i++: 9
i: 10
++i: 10
i--: 9
i: 8
--i: 8
대입 연산자
대입 연산자는 동일한 변수가 연산자의 좌우에 모두 쓰이는 경우 간단하게 쓰기위해 사용하는 연산자를 말한다.
각 연산자의 정의는 다음과 같다.
유형 | 정의 |
+= | i += j; (이 식과 동일: i = i + j) |
-= | i -= j; (이 식과 동일: i = i - j) |
*= | i *= j; (이 식과 동일: i = i * j) |
/= | i /= j; (이 식과 동일: i = i / j) |
%= | i %= j; (이 식과 동일: i = i % j) |
비트 단위 연산자
비트 연산자는 정수형 데이터의 비트를 직접 제어하는데 사용하는 연산자를 말한다..
각 연산자의 정의는 다음과 같다.
유형 | 정의 | 설명 |
| | OR | 대응 비트가 하나만 1이어도 1을 출력 |
^ | XOR | 대응 비트가 서로 다를 때 1을 출력 |
<< | left shift | 지정된 수만큼 비트들을 왼쪽으로 이동시킴 |
>> | right shift | 지정된 수만큼 비트들을 오른쪽으로 이동시킴 |
~ | 1의 보수 | 0비트는 1로, 1비트는 0으로 변환 |
'소프트웨어 > C++' 카테고리의 다른 글
[C++] 객체지향 언어 (0) | 2021.12.01 |
---|---|
[C++] 객체지향의 개념 (0) | 2021.12.01 |
[C++] 데이터 타입 (0) | 2020.04.25 |