정처기 감자정처기 감자
공통 기초연산자

검색

검색어를 입력해 개념, 문제, 필기를 찾습니다.

연산자 우선순위

코딩C언어JavaPython
읽는데 14분 소요
처음 쓰인 날: 2026-02-03
마지막 수정일: 2026-03-21
조회수: —
선수학습(1개)
  • 산술·증감 연산자

요약

연산자 우선순위와 결합 방향을 알아봅니다. 정보처리기사 실기에 자주 출제되는 복합 연산식의 계산 순서를 단계별로 정리합니다.

연산자 우선순위 핵심 정리

우선순위연산자설명결합 방향
1() [] -> .괄호, 배열, 멤버 접근왼쪽 → 오른쪽
2++ --후위 증감왼쪽 → 오른쪽
3! ~ ++ -- * &단항 연산자, NOT, 전위 증감, 역참조, 주소오른쪽 → 왼쪽
4* / %곱셈, 나눗셈, 나머지왼쪽 → 오른쪽
5+ -덧셈, 뺄셈왼쪽 → 오른쪽
6<< >>비트 시프트왼쪽 → 오른쪽
7< <= > >=관계 연산자 (크기 비교)왼쪽 → 오른쪽
8== !=관계 연산자 (같음 비교)왼쪽 → 오른쪽
9&비트 AND왼쪽 → 오른쪽
10^비트 XOR왼쪽 → 오른쪽
11|비트 OR왼쪽 → 오른쪽
12&&논리 AND왼쪽 → 오른쪽
13||논리 OR왼쪽 → 오른쪽
14?:삼항 연산자오른쪽 → 왼쪽
15= += -= 등대입 연산자오른쪽 → 왼쪽
우선순위연산자설명결합 방향
1() [] .괄호, 배열, 멤버 접근왼쪽 -> 오른쪽
2! ~ ++ --단항 연산자, NOT, 증감오른쪽 -> 왼쪽
3* / %곱셈, 나눗셈, 나머지왼쪽 -> 오른쪽
4+ -덧셈, 뺄셈왼쪽 -> 오른쪽
5<< >>비트 시프트왼쪽 -> 오른쪽
6< <= > >=관계 연산자 (크기 비교)왼쪽 -> 오른쪽
7== !=관계 연산자 (같음 비교)왼쪽 -> 오른쪽
8&비트 AND왼쪽 -> 오른쪽
9^비트 XOR왼쪽 -> 오른쪽
10|비트 OR왼쪽 -> 오른쪽
11&&논리 AND왼쪽 -> 오른쪽
12||논리 OR왼쪽 -> 오른쪽
13?:삼항 연산자오른쪽 -> 왼쪽
14= += -= 등대입 연산자오른쪽 -> 왼쪽
우선순위연산자설명결합 방향
1()괄호왼쪽 → 오른쪽
2**거듭제곱오른쪽 → 왼쪽
3+x -x ~x단항 연산자, 비트 NOT오른쪽 → 왼쪽
4* / // %곱셈, 나눗셈, 정수 나눗셈, 나머지왼쪽 → 오른쪽
5+ -덧셈, 뺄셈왼쪽 → 오른쪽
6<< >>비트 시프트왼쪽 → 오른쪽
7&비트 AND왼쪽 → 오른쪽
8^비트 XOR왼쪽 → 오른쪽
9|비트 OR왼쪽 → 오른쪽
10== != < > <= >= is in비교, 동일성, 멤버십왼쪽 → 오른쪽
11not논리 NOT오른쪽 → 왼쪽
12and논리 AND왼쪽 → 오른쪽
13or논리 OR왼쪽 → 오른쪽
14if-else조건부 표현식오른쪽 → 왼쪽
15= += -= 등대입 연산자오른쪽 → 왼쪽

숫자가 작을수록 우선순위가 높습니다. (1이 가장 먼저 계산)

연산자 종류가 아직 익숙하지 않다면 해당 페이지를 먼저 읽어보세요. 비트 연산자는 별도 페이지에서 자세히 다룹니다.


결합 방향이란?

결합 방향(Associativity)은 같은 우선순위의 연산자가 연속으로 나올 때 어느 쪽부터 묶을지, 즉 괄호를 어느 방향으로 칠지를 정하는 규칙입니다.

연산자 개념이 처음이라면 해당 페이지를 먼저 읽어보세요.

왼쪽 → 오른쪽 (대부분의 연산자)

c
코드 하이라이팅 중…

왼쪽부터 차례대로 계산합니다.

오른쪽 → 왼쪽 (대입, 단항, 삼항 연산자)

대입 연산자 (=)

c
코드 하이라이팅 중…

오른쪽부터 계산합니다. c에 먼저 5가 대입되고, 그 값이 b에, 다시 a에 대입됩니다.

단항 연산자 (!, ~, ++, --, *, &)

c
코드 하이라이팅 중…

C언어에서 0은 거짓, 0이 아닌 값은 참입니다. !a는 !0이므로 거짓의 반대인 1(참)이 되고, !1은 참의 반대인 0(거짓)이 됩니다.

c
코드 하이라이팅 중…

비트 NOT 연산을 두 번 하면 원래 값으로 돌아옵니다.

c
코드 하이라이팅 중…

++c가 먼저 계산되어 6이 되고, -6이 됩니다.

삼항 연산자 (?:)

c
코드 하이라이팅 중…

결합 방향이 오른쪽 → 왼쪽이므로 a ? 1 : (b ? 2 : 3)으로 묶입니다. 여기서 오른쪽부터 묶는다는 것은 괄호를 치는 순서일 뿐, 계산하는 순서가 아닙니다.

계산은 조건식부터 합니다. 먼저 a를 계산하면 0(거짓)이므로 콜론 뒤의 (b ? 2 : 3)을 계산해 2가 되고, 이것이 전체 결과가 됩니다. 조건이 거짓이라 선택되지 않은 1은 계산되지 않습니다.

삼항 연산자는 조건식을 먼저 계산합니다
중첩 삼항에서 오른쪽 식을 먼저 계산한다고 외우면, 조건에 따라 한쪽만 계산된다는 점을 놓칩니다. 괄호로 묶는 방향(오른쪽 → 왼쪽)과 계산하는 순서(조건식 → 선택된 한쪽)를 구분하세요.

실기 문제 빈출 연산자 조합

나머지와 비교 연산자

% 연산자가 < 연산자보다 우선순위가 높습니다.

c
코드 하이라이팅 중…

계산 순서:

  1. 4 % 3 = 1 (나머지 연산 먼저)
  2. 1 < 3 = 1 (비교 연산)

비트 시프트와 비트 AND 연산자

>> 연산자가 & 연산자보다 우선순위가 높습니다.

c
코드 하이라이팅 중…

계산 순서:

  1. 2 >> 1 = 1 — >> 는 비트를 오른쪽으로 미는 연산입니다. 2를 2진수로 쓰면 10이고, 오른쪽으로 1칸 밀면 01, 즉 1이 됩니다.
  2. 2 & 1 = 0 (비트 AND 연산)
text
코드 하이라이팅 중…
연산자 우선순위
연산자 우선순위: 산술 > 시프트 > 비교 > 비트 > 논리 > 삼항 > 대입

논리 연산자(&&)와 삼항 연산자(?:)

&& 연산자가 ?: 연산자보다 우선순위가 높습니다.

c
코드 하이라이팅 중…

계산 순서:

  1. 7 > 5 = 1 (참)
  2. 0 <= 3 = 1 (참)
  3. 1 && 1 = 1 (논리 AND)
  4. 조건이 참이므로 0 * 7 = 0

복합 연산 문제 풀이 예시

다음 코드의 출력 결과를 구해봅시다.

c
코드 하이라이팅 중…

1단계: z = y % 3 < 3 ? 2 : 1

text
코드 하이라이팅 중…

2단계: z = z & z >> 1

text
코드 하이라이팅 중…

3단계: z = x > 5 && z <= 3 ? z * x : z / x

text
코드 하이라이팅 중…

최종 출력: 0

복합 연산식 풀이 순서
1. 괄호 안을 먼저 계산 2. 산술 연산자(%, *, /) 계산 3. 비교 연산자(<, >, ==) 계산 4. 비트 연산자(&, ^, |) 계산 5. 논리 연산자(&&, ||) 계산 6. 삼항 연산자(?:) 계산 7. 대입(=)

핵심: 비교 연산자가 비트 연산자보다 먼저 계산된다

이 문제를 풀 때 가장 중요한 규칙은 다음과 같습니다.

text
코드 하이라이팅 중…

즉, ==와 !=가 먼저 계산되고, 그 결과에 비트 연산자가 적용됩니다.

왜 이것이 중요한가?

java
코드 하이라이팅 중…

1==b^c!=d를 보면 ^(XOR)가 먼저 계산될 것 같지만, 실제로는 ==와 !=가 먼저 계산됩니다.

Java 연산자 우선순위
비교 연산자(==, !=)가 먼저 계산되고, 비트 연산자(&, ^, |)는 나중에 계산됩니다.
비트 연산자의 우선순위는 비교 연산자보다 낮습니다
많은 사람이 &, |, ^가 ==, != 보다 먼저 계산된다고 착각합니다. 하지만 실제로는 ==, != 가 먼저 계산되고, 그 결과(true/false)에 비트 연산이 적용됩니다.

비트 연산자 사이의 우선순위

비트 연산자끼리도 우선순위가 다릅니다.

text
코드 하이라이팅 중…
순서연산자이름
먼저&AND
중간^XOR
나중에|OR
java
코드 하이라이팅 중…

기출 문제 풀이: 연산자 우선순위 적용

다음 코드로 연산자 우선순위를 실전에 적용해봅시다.

java
코드 하이라이팅 중…

1단계: 비교 연산자 먼저 계산

각 비교 연산자의 결과를 먼저 구합니다.

연산계산결과
a == 23 == 2false
a == c3 == 3true
c > d3 > 5false
1 == b1 == 4false
c != d3 != 5true

2단계: NOT 연산자 계산

! 연산자는 단항 연산자로 우선순위가 매우 높습니다.

text
코드 하이라이팅 중…

3단계: 비트 연산자 계산

이제 비교 결과를 대입하여 비트 연산을 계산합니다.

text
코드 하이라이팅 중…

괄호 안부터 계산:

text
코드 하이라이팅 중…

괄호 밖의 & 연산:

text
코드 하이라이팅 중…

최종 결과: true (if문 내부 실행)

계산 순서 요약
1. 괄호 안을 먼저 계산 2. 비교 연산자(==, !=, >) 계산 3. 단항 NOT(!) 계산 4. 비트 연산자를 & -> ^ -> | 순서로 계산

같은 패턴의 조건식 분석

위 문제의 내부 if문도 같은 패턴입니다.

java
코드 하이라이팅 중…

계산 과정

text
코드 하이라이팅 중…

비교 연산자가 먼저 계산됩니다.

연산계산결과
7 == b7 == 4false
c != a3 != 7true
text
코드 하이라이팅 중…

조건이 true이므로 System.out.println(a) 가 실행되어 7이 출력됩니다.

거듭제곱 연산자의 높은 우선순위

Python에서 거듭제곱 연산자 **는 단항 연산자보다도 우선순위가 높습니다.

python
코드 하이라이팅 중…

-2를 제곱한 4가 아니라, 2 ** 2 = 4에 -를 붙인 -4가 됩니다.

python
코드 하이라이팅 중…

산술 연산자와 비교 연산자

산술 연산자가 비교 연산자보다 우선순위가 높습니다.

python
코드 하이라이팅 중…

계산 순서:

  1. 4 % 3 = 1 (나머지 연산 먼저)
  2. 1 < 3 = True (비교 연산)

정수 나눗셈(//)과 일반 나눗셈(/)

//와 /는 같은 우선순위이므로 왼쪽부터 계산합니다.

python
코드 하이라이팅 중…

논리 연산자(and, or, not)

Python의 논리 연산자는 영어 단어(not, and, or)를 사용하며, 우선순위는 not > and > or 순입니다.

python
코드 하이라이팅 중…

and가 or보다 먼저 계산됩니다. False and False가 먼저 계산되어 False가 되고, True or False가 계산되어 True가 됩니다.

비교 연산자와 논리 연산자

비교 연산자가 논리 연산자보다 우선순위가 높습니다.

python
코드 하이라이팅 중…

복합 연산 문제 풀이 예시

다음 코드의 출력 결과를 구해봅시다.

python
코드 하이라이팅 중…

1단계: z = 2 if y % 3 < 3 else 1

text
코드 하이라이팅 중…

2단계: z = z & z >> 1

비트 시프트(>>)가 비트 AND(&)보다 우선순위가 높습니다.

text
코드 하이라이팅 중…

3단계: z = z * x if x > 5 and z <= 3 else z // x

text
코드 하이라이팅 중…

최종 출력: 0

Python 복합 연산식 풀이 순서
1. 괄호 안을 먼저 계산 2. 거듭제곱(**) 계산 3. 산술 연산자(%, *, /, //) 계산 4. 비트 시프트(<<, >>) 계산 5. 비트 연산자(&, ^, |) 계산 6. 비교 연산자(<, >, ==) 계산 7. 논리 연산자(not, and, or) 계산 8. 조건부 표현식(if-else) 계산 9. 대입(=)

헷갈리기 쉬운 우선순위

비트 연산자 vs 비교 연산자

비교 연산자(<, >, == 등)가 비트 연산자(&, |, ^)보다 우선순위가 높습니다.

c
코드 하이라이팅 중…
비트 연산자의 우선순위가 비교 연산자보다 낮습니다
3 & 2 == 2를 보면 & 가 먼저 계산될 것 같지만, 실제로는 2 == 2가 먼저 계산됩니다. 비트 연산을 먼저 하려면 반드시 괄호를 사용하세요.

비교 연산자(==, !=, <, > 등)가 비트 연산자(&, |, ^)보다 우선순위가 높습니다.

java
코드 하이라이팅 중…
Java는 C언어와 다르게 타입이 엄격합니다
C언어에서는 3 & (2 == 2)가 3 & 1 = 1로 계산되지만, Java에서는 boolean과 int를 & 연산할 수 없어 컴파일 에러가 발생합니다. 시험 문제에서는 보통 양쪽이 모두 boolean이 되도록 구성됩니다.

비트 XOR(^) vs 비트 AND(&)

&가 ^보다 우선순위가 높습니다.

java
코드 하이라이팅 중…

Python은 C/Java와 다르게 비트 연산자(&, |, ^)가 비교 연산자(==, !=, <, > 등)보다 우선순위가 높습니다.

python
코드 하이라이팅 중…

3 & 2가 먼저 계산되어 2가 되고, 2 == 2가 True가 됩니다.

python
코드 하이라이팅 중…

Python에서 True는 정수 1로 취급되므로 3 & 1 = 1이 됩니다. 비교를 먼저 하려면 반드시 괄호를 사용하세요.

Python은 C/Java와 비트 연산자 우선순위가 다릅니다
C/Java에서는 비교 연산자가 비트 연산자보다 먼저 계산되지만, Python에서는 반대로 비트 연산자가 먼저 계산됩니다. 3 & 2 == 2는 Python에서 (3 & 2) == 2 = True이지만, C에서는 3 & (2 == 2) = 1입니다.

대입 연산자는 가장 낮음

대입 연산자(=)는 "같다"가 아니라 오른쪽 값을 왼쪽 변수에 넣는 연산자입니다. 거의 모든 연산자보다 우선순위가 낮아서, 오른쪽의 모든 계산이 끝난 뒤에 마지막으로 실행됩니다.

c
코드 하이라이팅 중…
java
코드 하이라이팅 중…
python
코드 하이라이팅 중…

정보처리기사 실기 기출 문제

문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
메가커피와 함께, 홈페이지 개선에 참여하세요! ☕
혹시 이용에 불편한 점이나 개선이 필요한 부분을 발견하셨나요? 댓글로 알려주시면 더 나은 감자가 될 수 있어요! 🥔 제보해주신 모든 분께 메가커피 기프티콘을 드립니다! (본인 이메일로 댓글 달아주셔야해요~)
정처기 감자정처기 감자

정보처리기사 합격
도와줄라고 하는 감자

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매
© 2025 재현기획개발. All rights reserved.
  • 정처기 감자의 시작
  • 업데이트 로그
  • 개인정보 처리방침
  • 이용약관
상호명 : 재현기획개발 / 주소: 서울특별시 영등포구 영등포로 150, 지하1층 108호 L145 가라지(당산동1가, 생각공장 당산) / 대표: 김재현 / 전화: 010-8158-7127 / 통신판매업신고: 제2025-서울영등포-1569호 / 이메일: contact@edugamja.com / 사업자등록번호: 573-51-00999