연산의 우선순위

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색

수학컴퓨터 프로그래밍에서 연산의 우선순위는 모호하게 해석가능한 수식에서 어느 연산을 먼저 계산할 것인가를 결정하는 규칙이다.

표준적인 연산의 우선순위[편집]

일반적으로 쓰여진 수식에서는 다음과 같은 우선순위를 따른다. 목록의 앞쪽에 있는 연산의 우선순위가 높다.

괄호안쪽의 수식
지수 및 근호
곱하기와 나누기
더하기와 빼기

[편집]

괄호 안의 수식은 어떤 경우에서든지 우선순위가 가장 높다.

아래와 같은 수식의 경우 다음과 같이 계산된다.

부호보다 지수가 먼저 계산된다.

근호로 둘러싸인 수식은 먼저 계산한다.

분수형태에 갇혀있는 수식은 먼저 계산한다.

우선순위가 없는 연산은 앞에서부터 차례로 계산한다.

지수위의 지수가 있는 경우, 위쪽에 있는 지수의 우선순위가 높다.

특수한 경우[편집]

시그마 기호의 경우는 가감보다 우선순위가 높지만 문맥에 따라 적절히 해석한다.

이와같은 경우 괄호가 없으면 모호하다.

그러므로 다음과 같이 괄호를 써 주는 것이 좋다.

그러나 아래의 경우는 괄호가 없어도 모호하지 않으므로 쓰지 않는 경우도 있다.

프로그래밍 언어[편집]

프로그래밍 언어는 각 언어마다 규율이 있다. 일반적인 C 언어의 경우 다음과 같은 우선순위를 따른다.

1 ()   []   ->   .   :: Grouping, scope, array/member access
2  !   ~   -   +   *   &   sizeof   type cast ++x   --x   (most) unary operations, sizeof and type casts
3 *   /   % Multiplication, division, modulo
4 +   - Addition and subtraction
5 <<   >> Bitwise shift left and right
6 <   <=   >   >= Comparisons: less-than, ...
7 ==   != Comparisons: equal and not equal
8 & Bitwise AND
9 ^ Bitwise exclusive OR
10 | Bitwise inclusive (normal) OR
11 && Logical AND
12 || Logical OR
13  ?: Conditional expression (ternary operator)
14 =   +=   -=   *=   /=   %=   &=   |=   ^=   <<=   >>= Assignment operators
15 , Comma operator