산술 연산자
산술 연산자
산술 연산자는 정수나 실수를 담은 산술 표현식 안에서 사용돼요. 연산자 종류는 두 가지로 나뉘는데, 피연산자가 두 개 필요한 이항 연산자와 피연산자가 하나인 단항 연산자예요.
출처: 문서
본문
먼저 이항 산술 연산자부터 볼게요. 아래 표 12.2에 정리돼 있어요.
표 12.2: 이항 산술 연산자
| 연산자 | 동작 |
|---|---|
+ |
덧셈 |
- |
뺄셈 |
* |
곱셈 |
** |
거듭제곱 |
/ |
나눗셈 |
Div |
정수 나눗셈 |
Mod |
나머지 |
Div와 Mod는 정수 표현식만 피연산자로 받는 특별한 경우이고, 나머지 연산자는 실수와 정수 표현식을 모두 받아요.
하나 짚고 넘어갈 게 있어요. 거듭제곱 연산자(**)는 연산자 오버로딩에는 사용할 수 있지만(15장 참조), 표준 파스칼 타입(부동소수점, 정수) 어디에도 기본 정의가 없어요.
이항 연산자의 결과 타입은 이렇게 정해져요.
- 두 피연산자가 모두 정수 타입 표현식이면 결과도 정수예요.
- 둘 중 하나라도 실수 타입 표현식이면 결과는 실수예요.
- 단, 예외적으로 나눗셈(
/)은 항상 실수 값을 돌려줘요.
이제 단항 산술 연산자를 볼게요. 표 12.3에 나와 있어요.
표 12.3: 단항 산술 연산자
| 연산자 | 동작 |
|---|---|
+ |
부호 그대로 |
- |
부호 반전 |
단항 연산자의 결과 타입은 항상 피연산자의 타입과 같아요.
주의할 점이 하나 있어요. 나눗셈(/)과 Mod 연산자는 두 번째 인자가 0이면 런타임 오류를 일으켜요.
Mod 연산자의 결과 부호는 왼쪽 피연산자의 부호와 같아요. 실제로 Mod는 다음 연산과 동일한 의미인데,
I mod J = I - (I div J) * J
오른쪽 표현식보다 더 빠르게 실행돼요.