Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
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
31
Tags
more
Archives
Today
Total
관리 메뉴

램준의 프로그래밍 독학 블로그

[C++] 기본 연산자, 증감 연산자, 논리 연산자 본문

C++ 독학

[C++] 기본 연산자, 증감 연산자, 논리 연산자

문예거 2021. 2. 4. 20:56

C++에서는 기본적으로 수를 연산할 수 있는 기능을 제공한다.

이때 예를 들어 1 + 1 = 2 라는 식이 있다면, 그 중 +를 연산자라고 한다.

말 그대로 수를 연산할 수 있도록 해주는 기호다.

 

연산자에도 많은 연산자가 있는데, 그 중 프로그래밍 지식이 없어도 이해 가능한 비교적 쉬운 연산자들만 모아 봤다.

그것들은 기본 연산자, 증감 연산자, 논리 연산자이다.

 

 

기본 연산자는 사칙연산이라고 생각하면 쉽다.

초등학교 때 다 배우는 더하기, 빼기, 곱하기, 나누기.

 

이것들을 사용할 땐 컴퓨터에선 각각 +(더하기), -(빼기), *(곱하기), /(나누기) 기호를 쓴다.

+와 -의 기호는 사칙 연산과 같지만 *와 /는 조금 다른 부분이 있다.

대문자 X와 컴퓨터엔 없는 나누기 기호를 쓰는 것이 번거롭고 불편해 바꾼 것이라고 생각 된다.

 

cout << "1 + 1 = " << 1 + 1 << endl;

 

이런 형태로 사용 가능하다.

위와 같은 코드를 입력하면 '1 + 1 = 2'라고 화면에 출력 된다.

 

 

증감 연산자는 기본 연산자보다 훨씬 쉽다.

++, --로 나타내는데, 증감 연산자라는 이름 그대로 증가와 감소를 뜻한다.

 

++은 1을 더한다는 뜻이고, --는 1을 뺀다는 뜻이다.

증감 연산자는 연산 하나 당 한 개씩만 쓸 수 있다.

결국은 '++++1' 한다고 2가 더해지는 것이 아니라는 소리다.

 

증감 연산자에는 전치와 후치로 사용 방법이 나뉜다.

전치는 숫자 앞에다가 증감 연산자를 붙이는 것이고, 후치는 그 반대로 뒤에다가 증감 연산자를 붙이는 것이다.

 

전치로 증감 연산자를 쓰면 명령어 실행과 동시에 변화가 적용되지만, 후치로 입력하면 실행 이후부터 변화가 적용된다.

 

cout << "2 + 1 = " << ++ 2 << endl;

 

 이렇게 쓰면 '2 + 1 = 3'이라고 화면에 출력되는 것이다.

 

 

논리 연산자는 지금까지의 연산자들과는 조금 다른 면을 가지고 있다.

지금까지는 수에다가 변화를 적용시키는 등의 연산자들이었지만, 이 연산자는 사실 수식과도 관련이 있다고 할 수 있다.

 

논리 연산자의 종류로는 AND(&&), OR(||), NOT(!)이 있다.

이것들은 전부 두 수를 비교하여 참/거짓의 형태로 반환해주는 기능들을 가지고 있다.

 

A   B   AND  OR

0   0     0      0

0   1     0      1

1   0     0      1

1   1     1      1

 

위의 표는 논리 연산자에서 AND와 OR의 참/거짓 반환값을 나타낸 것이다.

컴퓨터에서 참/거짓은 0과 1로 표현 가능하다.

0은 거짓이고, 참은 0을 제외한 나머지 모든 수인데 보통은 1이라고 생각하면 편하다.

 

AND는 두 수 A와 B가 둘 다 참일때에만 참 값을 반환해준다.

둘 중 하나라도 거짓이라면 거짓 값을 반환하는 것이다.

 

OR은 AND와 다르게 A와 B 중 하나만 참이라도 참 값을 반환해준다.

그래서 위의 표처럼 참/거짓 값이 반환되게 되는 것이다.

 

이제 논리 연산자의 마지막, NOT이다.

NOT은 AND와 OR과는 다르게 두 수를 비교하는 것이 아니라 한 수의 참/거짓 값을 반환하는 것이다.

 

A   NOT

0     1

1     0

 

이 연산자는 참/거짓 값을 반대로 해서 반환한다고 생각하면 편하다.

NOT은 실제 영어에선 '아니다'라는 뜻을 가지고 있다.

그래서 A가 참이면 '참이 아니다', 즉 '참이 아니다'라는 말이 참이 되는 것이기 때문에 참을 반환해주는 것이다.

 

//AND 연산자 예시
int iNumber1 = 10;
int iNumber2 = 10;

if (iNumber1 && iNumber2)
	cout << "iNumber1 값과 iNumber2 값이 같다." << endl;

iNumber1과 iNumber2 값이 같기 때문에 if문이 true 가 되어 cout 함수 안에 있는 문자열 내용이 출력되게 된다.

 

//OR 연산자 예시
int iNumber1 = 10;
int iNumber2 = 5;

if (iNumber1 == 10 || iNumber2 == 10)
	cout << "iNumber1 의 값과 iNumber2 의 값은 다르다." << endl;

iNumber1는 10, iNumber2는 5의 값을 가졌다.

if문의 true 조건에선 두 변수의 값이 각각 10이 아닌지를 묻는 것이기 때문에 원래 값이 10이라 이 조건이 true인 iNumber1과 false인 iNumber2는 참과 거짓 값이다.

OR 연산자는 두 개 중 하나만 참이라도 참 값을 반환하기 때문에 cout 함수 안에 있는 문자열이 출력될 것이다.

 

//NOT 연산자 예시
int iNumber = 0;

if (iNumber == 1 !)
	cout << "iNumber은 1이 아니다" << endl;

iNumber의 원래 값은 0이다.

if문의 조건은 iNumber가 1인지를 묻는 것이기 때문에 false이다.

하지만 뒤에 NOT 기호가 붙어서 뜻이 반전이 되었기 때문에 false가 true가 되었다.

그래서 cout 함수 안의 문자열이 출력될 것이다.

'C++ 독학' 카테고리의 다른 글

[C++] 난수 발생시키는 방법  (0) 2021.02.05
[C++] if 문의 구조  (0) 2021.02.04
[C++] float 변수 사용시 유의점  (0) 2021.02.04
[C++] 변수의 데이터 크기와 타입들  (0) 2021.02.04
[C++] 기본적인 입/출력 함수  (0) 2021.02.04