본문 바로가기

C

6. C 연산자

6. C 연산

- 지난 시간까지 입력 및 출력에 대해 알아보았다. 지금부터는 C에서 사용할 수 있는 연산에 대해 알아보자.

(1) 산술 연산

 컴퓨터에서는 다양한 산술 연산을 사용할 수 있다. 산술 연산이란 보통 수학에서 사용하는 연산으로 수를 이용하여 계산하는 연산을 의미한다. 보통 우리에게 친숙한 연산이라고 볼 수 있다.

연산 종류

 연산의 의미

예시

+

더하기 

c = a + b

-

빼기 

c = a - b

*

곱하기 

c = a * b

/

나누기 

c = a / b

%

나머지 구하기 

c = a % b

++

+1 (1 더하기) 

c++ / ++c

--

-1 (1 빼기) 

c-- / --c


더하기, 빼기, 곱하기까지는 우리가 평소 수학시간에 사용하는 연산과 동일하다.

나누기는 사용하는 변수의 유형에 따라 결과가 다르게 나온다. 나누기를 사용할 수 있는 변수는 정수형과 실수형 총 2가지이며 각각의 계산결과는 다음과 같다.


변수형 / 변수형

결과값

예시

정수형 / 정수형 

정수형

10 / 3 = 3 

정수형 / 실수형

실수형

10.0 / 3 = 3.333333....

실수형 / 실수형

실수형

 10.0 / 3.0 = 3.333333....


 C언어에서는 위의 표와 같이 표현할 수 있는 범위에 따라 나누기의 결과값이 달라진다. 따라서 자신이 원하는 결과값을 고려하여 변수를 사용해야한다. 특히 소수값을 출력하고 싶을 때에는 계산되는 숫자 중 한 개 이상을 실수형 변수가 있어야하며 없을 경우 변수 앞에 (float) 혹은 (double)을 써주면 된다. 아래 소스코드를 타이핑하며 나누기를 연습해보자.


(float)는 변수 a를 잠시만 실수형으로 변환하여 계산한다는 것을 의미하며 따라서 출력할 때에는 float의 형식 지정자인 %f를 사용하여 출력한다. 여기까지 이해가 되었으면 다음 문제를 스스로 풀어보자.

 연습문제

 국어, 영어, 수학 3 과목의 평균을 구하는 프로그램을 작성해보자.


[입력] 국어, 영어, 수학의 점수가 입력된다.

[출력] 3 과목의 평균이 출력된다.


[입력 예시] 90 92 96

[출력 예시] 92.666667



C언어에서는 나누기 뿐만 아니라 나머지를 구하는 계산, 1을 더하거나 빼는 연산을 할 수 있다. ++ / -- 을 활용하면 1을 더하거나 1을 빼는 연산을 할 수 있으며 이 연산은 다른 연산과 다르게 변수 1개만 사용한다. ++ / -- 는 위치에 따라 언제 더해주거나 뺄지 결정하며 변수 앞에 위치하면 바로 계산하고 변수 뒤에 ++ / -- 가 있으면 다음 순서에 계산한다. 예시 코드를 통해 연습해보자.


(2) 논리 연산

  산술 연산 뿐만 아니라 논리적인 연산 또한 컴퓨터에서 많이 사용되는 연산이다. 논리 연산이란 참(1)과 거짓(0)을 이용하여 계산하는 연산을 의미한다. 어떻게 계산할 수 있는지는 다음 표를 참고해보자.

논리 연산

의미

AND(&&)

연결된 모든 조건이 참인 경우(그리고)

OR(||)

모든 조건 중 한 가지라도 참인 경우(또는)

NOT(!)

참은 거짓으로, 거짓은 참으로 변환


논리 연산에는 크게 3가지 종류가 있다. ANDOR 그리고 NOT이다. 모든 연산자는 대부분 조건과 조건 사이를 연결하거나 조건을 따로 처리할 때 사용된다. AND와 OR 연산자는 조건과 조건 사이에, NOT은 조건을 처리할 때 사용된다.


논리 연산은 항상 결과값을 참(1)/거짓(0)으로 반환하며 이를 통해 선택 구조와 반복 구조에서 사용된다.

다음 소스코드를 타이핑하면 논리 연산을 연습해보자. 


AND 연산은 and 혹은 &&, OR 연산은 or 혹은 || 기호를 통해 사용할 수 있으며 NOT 연산은 ! 기호를 통해 사용할 수 있다.


(3) 비교 연산

  비교 연산은 보통 연산의 한 종류로 포함시키지는 않지만 조건을 만들 때 꼭 필요한 연산자이기에 중요하다. 비교 연산은 쉽게 말해 부등호 표시를 의미하며 숫자와 숫자 혹은 문자와 문자를 비교할 때 사용한다. 비교 연산을 사용한 수식은 참(1)과 거짓(0)의 결과값을 가지며 수식이 참이면 1을, 거짓이면 0을 결과값으로 가진다. 이를 활용하여 나중에 배울 조건문과 반복문에서 분기를 결정하는 중요한 역할을 담당하게 된다. 비교 연산의 종류는 다음과 같이 6가지가 존재한다.

비교 연산

의미

사용 예시

>, <

크다 / 작다

a<b / a>b

>=, <=

크거나 같다 / 작거나 같다

a<=b / a>=b

==

서로 같다 

a == b

!=

서로 다르다 

a != b 


비교 연산에서 기억할 부분은 2가지이다. 첫 번째, 등호(=)는 항상 부등호(>,<) 뒤에 위치한다는 것이다. 두 번째, 같다는 의미를 나타내는 비교 연산자는 =이 아닌 ==이라는 것이다. =은 현재 C언어에서 저장의 의미로 사용되고 있다. 따라서 같다라는 의미를 사용하기 위해서는 ==을 사용해야 한다. 이 2가지는 처음 많이 헷갈려하는 부분이기 때문에 꼭 기억해야한다. 다음 소스코드를 작성하면서 비교 연산자를 연습해보자.

비교 연산자를 사용하면 부등식의 결과에 따라 1(참) 또는 0(거짓)이 나오게 된다. 이를 활용하여 나중에 선택 구조 알고리즘을 설계할 때 조건으로 사용할 수 있다.


지금까지 C언어에서 사용되는 여러 연산에 대해 알아보았다. 다음 시간에는 이를 활용하여 선택 구조 알고리즘을 설계할 수 있는 조건문(if문)에 대해 배워보자.


'C' 카테고리의 다른 글

7. C 조건문  (0) 2018.08.24
5. C 입력  (0) 2018.05.23
4. C 변수  (0) 2018.05.16
3. C 출력하기  (0) 2018.05.14
2. C 기본구조  (0) 2018.05.14