[사칙연산 계산순서]사칙연산 우선순위는 어떻게 정해지는가?
재미있는 볼거리 2013.02.19 11:43
사칙연산 즉, 덧셈, 뺄셈, 나눗셈, 곱셈의 계산순서는 어떻게 될까?
1 + 2 × 3 은 9 일까? 7 일까?
1 + 2 를 먼저 계산하고, 3 을 곱하면 9 가 되고,
2 × 3 을 먼저 계산하고, 1 을 더하면 7 이 된다.
사칙연산에서 연산 순서는 어떻게 될까?
덧셈, 뺄셈, 곱셈, 나눗셈에서 연산 순서는 어떻게 될까?
정답은 왼쪽에서부터 오른쪽으로 차례대로 계산하되, 곱셈과 나눗셈을 먼저 계산하고, 그 다음 덧셈과 뺄셈을 계산하는 것이다. 곱셈과 나눗셈은 우선순위가 동일하므로 어느 것을 먼저 해도 관계없다. 덧셈과 뺄셈도 마찬가지로 우선순위는 동일하다. 괄호가 있을 경우는 괄호가 사칙연산보다 우선한다.
그러므로 1+2×3 의 계산 결과는 7 이 된다.
그러면 여기서 의문이 생긴다. 왜 곱셈과 나눗셈을 덧셈이나 뺄셈보다 먼저 계산할까?
좀 어려운 말이기는 하지만 우리는 중위표기법을 쓰기 때문이며, 원래 규칙이 그렇기 때문이다.
표기법에는 전위표기법(前位表記法, Prefix notation), 중위표기법(中位 表記法, Infix notation), 후위표기법(後位表記法, Postfix notation)이 있다. 전위와 중위, 후위로 나뉘는 것을 설명하기 전에 우리가 사용하는 수식을 먼저 살펴보자.
수식을 보면 앞과 뒤 두 개의 수와 그 중간에 연산자를 가지고 있는 이항(二項)연산으로 이루어져 있다. 이때 연산자가 앞에 있는 방식이 전위표기법, 중간에 있는 방식이 중위표기법, 뒤에 있는 방식이 후위표기법이다.
1 + 2 라는 수식으로 예를 들어보자.
전위표기법 : + 1 2
중위표기법 : 1 + 2
후위표기법 : 1 2 +
우리는 중위표기법에 익숙해 있으므로 전위표기법이나 후위표기법의 예를 보면 이런 수식 표기법도 있나 하는 의아심마저 들게 된다.
중위표기법이나 후위표기법은 컴퓨터에서 연산을 처리할 때 사용하는 방법으로 괄호를 비롯해서 사칙연산 등을 계산할 때 어느 연산을 먼저 할 것이냐를 판단하는 방법으로 주로 사용된다. 더 자세한 내용을 알고 싶으신 분은 대학교재 중 컴퓨터과학과의 교재인 알고리즘 교재를 살펴보기를 바란다.
중위표기법은 수백 년 동안 사용되어 왔기 때문에 왜 이렇게 사용하느냐라는 의문도 없이 당연한 것처럼 여겨져 왔다. 여기서 수백 년 전으로 돌아가 계산하는 예를 들어보자. 요즘 계산할 때도 동일한 방법으로 계산하고 있다.
아래 동물들의 수를 세어보자.
개. 개. 개. 개. 개
말. 말. 말. 말. 말
쥐. 쥐. 쥐. 쥐. 쥐
양. 양. 양. 양. 양
새. 새. 새
복잡하게 계산할 필요도 없이 23 이라는 숫자가 툭 튀어나온다.
하지만 그 결과가 나오기까지는 이미 머리속으로 5×4+3 이라는 계산을 진행한 상태이다.
이 때 계산하게 된 수식을 따져보자.
여러분은 곱셈을 먼저 했는가? 아니면 덧셈을 먼저 했는가?
물론 5×4가 수식의 앞쪽에 있으니까 먼저 했다라고 주장할지도 모르겠지만
수식을 바꿔서 3+5×4일 경우에는 어떻게 하겠는가?
여전히 여러분은 곱셈을 먼저하게 된다.
이미 우리의 유전자는 이런 수식을 빨리 계산하는 방법은 곱셈을 통해서 큰 묶음을 계산하고, 나머지 숫자를 더하는 것에 익숙해져 있다.
이 방식이 수백 년 전부터 이어져 온 것이다.