산술 연산자

산술 연산자

산술 연산자는 정수나 실수를 담은 산술 표현식 안에서 사용돼요. 연산자 종류는 두 가지로 나뉘는데, 피연산자가 두 개 필요한 이항 연산자와 피연산자가 하나인 단항 연산자예요.

출처: 문서

본문

먼저 이항 산술 연산자부터 볼게요. 아래 표 12.2에 정리돼 있어요.

표 12.2: 이항 산술 연산자

연산자 동작
+ 덧셈
- 뺄셈
* 곱셈
** 거듭제곱
/ 나눗셈
Div 정수 나눗셈
Mod 나머지

DivMod는 정수 표현식만 피연산자로 받는 특별한 경우이고, 나머지 연산자는 실수와 정수 표현식을 모두 받아요.

하나 짚고 넘어갈 게 있어요. 거듭제곱 연산자(**)는 연산자 오버로딩에는 사용할 수 있지만(15장 참조), 표준 파스칼 타입(부동소수점, 정수) 어디에도 기본 정의가 없어요.

이항 연산자의 결과 타입은 이렇게 정해져요.

  • 두 피연산자가 모두 정수 타입 표현식이면 결과도 정수예요.
  • 둘 중 하나라도 실수 타입 표현식이면 결과는 실수예요.
  • 단, 예외적으로 나눗셈(/)은 항상 실수 값을 돌려줘요.

이제 단항 산술 연산자를 볼게요. 표 12.3에 나와 있어요.

표 12.3: 단항 산술 연산자

연산자 동작
+ 부호 그대로
- 부호 반전

단항 연산자의 결과 타입은 항상 피연산자의 타입과 같아요.

주의할 점이 하나 있어요. 나눗셈(/)과 Mod 연산자는 두 번째 인자가 0이면 런타임 오류를 일으켜요.

Mod 연산자의 결과 부호는 왼쪽 피연산자의 부호와 같아요. 실제로 Mod는 다음 연산과 동일한 의미인데,

I mod J = I - (I div J) * J

오른쪽 표현식보다 더 빠르게 실행돼요.

더 알아보기