비트 연산자

코딩C언어JavaPython
읽는데 9분 소요
처음 쓰여진 날: 2026-02-03
마지막 수정일: 2026-02-18
조회수: 0

요약

비트 연산자(AND, OR, XOR, NOT, 시프트)를 알아봅니다. 정보처리기사 실기에 자주 출제되는 비트 연산 문제를 풀기 위한 핵심 개념을 정리합니다.

비트란?

비트(bit) 는 컴퓨터가 다루는 가장 작은 데이터 단위로, 0 또는 1 값만 가집니다.

모든 숫자는 컴퓨터 내부에서 비트의 조합()으로 저장됩니다. 실기 시험에서는 16진수(0xA5 등)로 표기된 값을 2진수로 변환해서 계산하는 문제가 자주 출제됩니다.

text
코드 하이라이팅 중...

비트 연산자는 이 비트들을 직접 조작하는 연산자입니다.


비트 연산자 핵심 정리

연산자이름설명예시
&AND둘 다 1이면 15 & 3 = 1
|OR하나라도 1이면 15 | 3 = 7
^XOR서로 다르면 15 ^ 3 = 6
~NOT비트 반전~5 = -6
<<왼쪽 시프트비트를 왼쪽으로 이동5 << 1 = 10
>>오른쪽 시프트비트를 오른쪽으로 이동5 >> 1 = 2

XOR 연산자 (^)

XOR(배타적 논리합) 연산은 두 비트가 서로 다를 때 1을 반환합니다.

ABA ^ B
000
011
101
110

XOR 계산 예시

c
코드 하이라이팅 중...

계산 과정:

text
코드 하이라이팅 중...
XOR 연산
XOR 연산은 두 비트가 다를 때만 1이 됩니다. 127 ^ 42 = 85


AND 연산자 (&)

AND 연산은 두 비트가 모두 1일 때만 1을 반환합니다.

ABA & B
000
010
100
111
c
코드 하이라이팅 중...
text
코드 하이라이팅 중...

OR 연산자 (|)

OR 연산은 두 비트 중 하나라도 1이면 1을 반환합니다.

ABA | B
000
011
101
111
c
코드 하이라이팅 중...
text
코드 하이라이팅 중...

NOT 연산자 (~)

NOT 연산은 모든 비트를 반전시킵니다. 0은 1로, 1은 0으로 바뀝니다.

c
코드 하이라이팅 중...
text
코드 하이라이팅 중...

시프트 연산자

왼쪽 시프트

비트를 왼쪽으로 이동시키고 빈 자리는 0으로 채웁니다. n칸 왼쪽 시프트는 2^n을 곱하는 것과 같습니다.

c
코드 하이라이팅 중...
text
코드 하이라이팅 중...

오른쪽 시프트

비트를 오른쪽으로 이동시킵니다. n칸 오른쪽 시프트는 2^n으로 나누는 것과 같습니다.

c
코드 하이라이팅 중...
text
코드 하이라이팅 중...

시프트 연산자는 비트 AND/OR 연산자보다 우선순위가 높습니다. a & b >> 1a & (b >> 1)로 계산됩니다.

비트 연산자 핵심 정리

연산자이름설명예시 (boolean)
&AND둘 다 true면 truetrue & false = false
|OR하나라도 true면 truetrue | false = true
^XOR서로 다르면 truetrue ^ false = true
!NOT반대로 뒤집기!true = false

비트 연산자란?

비트 연산자는 원래 숫자의 비트(0과 1)를 직접 조작하는 연산자입니다. 하지만 Java에서는 boolean 값(true/false)에도 사용할 수 있습니다.

정보처리기사 실기에서 Java 비트 연산자 문제는 주로 boolean(true/false) 값에 비트 연산자를 사용하는 형태로 출제됩니다.

java
코드 하이라이팅 중...

AND 연산자 (&)

AND 연산은 둘 다 true일 때만 true를 반환합니다.

ABA & B
falsefalsefalse
falsetruefalse
truefalsefalse
truetruetrue
java
코드 하이라이팅 중...

비교 연산자와 함께 사용

java
코드 하이라이팅 중...

a == 3은 true, b == 4도 true이므로 true & true = true입니다.



OR 연산자 (|)

OR 연산은 둘 중 하나라도 true면 true를 반환합니다.

ABA | B
falsefalsefalse
falsetruetrue
truefalsetrue
truetruetrue
java
코드 하이라이팅 중...

비교 연산자와 함께 사용

java
코드 하이라이팅 중...

a == 2는 false지만, a == c가 true이므로 false | true = true입니다.


XOR 연산자 (^)

XOR(배타적 논리합) 연산은 두 값이 서로 다를 때 true를 반환합니다.

ABA ^ B
falsefalsefalse
falsetruetrue
truefalsetrue
truetruefalse
java
코드 하이라이팅 중...
Java 비트 연산자 진리표
비트 연산자 진리표: AND는 둘 다 true면 true, OR은 하나만 true면 true, XOR은 서로 다르면 true

비교 연산자와 함께 사용

java
코드 하이라이팅 중...

1 == b는 false, c != d는 true이므로 false ^ true = true (서로 다르므로)입니다.


NOT 연산자 (!)

NOT 연산은 boolean 값을 반대로 뒤집습니다.

A!A
truefalse
falsetrue
java
코드 하이라이팅 중...

비교 연산자와 함께 사용

java
코드 하이라이팅 중...

c > d3 > 5이므로 false입니다. NOT 연산으로 뒤집으면 true가 됩니다.


비트 연산자 vs 논리 연산자

Java에서는 비슷한 역할을 하는 두 종류의 연산자가 있습니다.

비트 연산자논리 연산자차이점
&&&&는 양쪽 모두 평가, &&는 왼쪽이 false면 오른쪽 평가 안 함
||||는 양쪽 모두 평가, ||는 왼쪽이 true면 오른쪽 평가 안 함
java
코드 하이라이팅 중...

비트 연산자 핵심 정리

연산자종류설명예시결과
>>비트 오른쪽 시프트비트를 오른쪽으로 n칸 이동 (2^n으로 나누기)100 >> 150
<<비트 왼쪽 시프트비트를 왼쪽으로 n칸 이동 (2^n을 곱하기)100 << 1200
&AND둘 다 1이면 15 & 31
|OR하나라도 1이면 15 | 37
^XOR서로 다르면 15 ^ 36

비트 시프트 연산자

비트 시프트 연산자는 숫자의 비트를 왼쪽 또는 오른쪽으로 이동시킵니다.

오른쪽 시프트 (>>)

n칸 오른쪽 시프트는 2^n으로 나누는 것과 같습니다. 비트를 오른쪽으로 이동시키고 빈 자리는 0으로 채웁니다.

python
코드 하이라이팅 중...

이진수로 확인:

text
코드 하이라이팅 중...

왼쪽 시프트 (<<)

n칸 왼쪽 시프트는 2^n을 곱하는 것과 같습니다. 비트를 왼쪽으로 이동시키고 빈 자리는 0으로 채웁니다.

python
코드 하이라이팅 중...
시프트의미계산
a >> 1a / 22^1 = 2로 나누기
a >> 2a / 42^2 = 4로 나누기
a << 1a * 22^1 = 2를 곱하기
a << 2a * 42^2 = 4를 곱하기

논리 연산자

논리 연산자는 여러 조건을 조합할 때 사용합니다.

연산자설명예시결과
and두 조건 모두 True이면 TrueTrue and FalseFalse
or하나라도 True이면 TrueTrue or FalseTrue
notTrue를 False로, False를 True로 반전not TrueFalse
python
코드 하이라이팅 중...

복합 대입 연산자

복합 대입 연산자는 연산과 대입을 한 번에 수행합니다.

연산자의미예시
+=더하고 대입a += 5
-=빼고 대입a -= 5
*=곱하고 대입a *= 2
//=정수 나누고 대입a //= 2
%=나머지 대입a %= 3
>>=오른쪽 시프트 후 대입a >>= 1
python
코드 하이라이팅 중...

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