비트 논리 연산자 — 비트 AND·OR·XOR·NOT과 이진수 연산 | 기초 C언어 5.2.3
기초 C언어Chapter 05 연산자 › Section 02 조건 판단 연산자 › 03
5.2.3 비트 논리 연산자
값을 0 과 1 의 나열로 보고 한 자리씩 따지는 네 기호. 기호를 겹치면 앞 편의 논리 연산자가 됨.
01값 전체가 아니라 0 과 1 의 한 자리씩교재 135p
- 비트 논리 연산자(Bitwise Logical Operators) — 데이터의 비트(bit) 단위, 곧 0 과 1 의 수준에서 직접 논리 연산을 수행하는 저수준 연산자.
- 저수준 — 수준이 낮다는 말이 아님 — 사람이 보는 값보다 기계가 담아 두는 모습에 가깝다는 뜻.
- 앞 편 5.2.2 와 갈리는 자리는 기호가 하나냐 둘이냐 — 논리 연산자 && || 는 변수 전체의 값을 참·거짓으로 판단, 비트 연산자 & | ^ ~ 는 각 자리를 하나씩 비교. 기호가 한 겹 줄어듦.
02연산의 기본 단위 — 비트(Bit)교재 135p
- 모든 데이터는 컴퓨터 내부에 0 과 1 의 나열인 비트로 저장됨. 10진수로 적어도 기계 안에서는 언제나 이 모습.
- 정수 5 와 3 을 8비트 크기의 메모리에 담은 꼴 — 네 자리씩 끊어 읽으면 자리를 세기 쉬움.
5 → 0000 01013 → 0000 0011
03네 연산자를 가르는 기준교재 135p~136p
| 연산자 | 결과 비트가 1 이 되는 자리 | 5 와 3 |
|---|---|---|
| & AND | 두 비트가 모두 1 일 때만 1 | 1 |
| | OR | 하나만 1 이어도 1 | 7 |
| ^ XOR | 두 비트가 서로 다를 때만 1 | 6 |
| ~ NOT | 값 하나를 받아 모든 자리를 뒤집음 | -6 |
- XOR — Exclusive OR, 배타적 OR — OR 와 갈리는 자리는 양쪽이 모두 1 인 칸. OR 는 1 로 남기고 XOR 는 0 으로 지움.
04~ 의 결과가 음수인 까닭교재 136p~137p
- ~ 는 하나의 숫자에만 쓰임. 0 은 1 로, 1 은 0 으로 모든 자리를 뒤집음.
- 뒤집고 나면 맨 앞 비트(최상위 비트)가 1 — 그래서 결과가 음수.
~ 0000 0101 (5) → 1111 1010 (-6)
뒤집힌 비트열을 2의 보수로 풀어 -6 을 얻는 세 걸음은 교재 137p [참고] 에 있습니다.
05칠 때 틀리기 쉬운 자리교재 137p~138p
여기서 자주 틀림
- 기호 개수 — & 하나는 비트, 둘 겹친 && 는 앞 편의 논리 연산자. | 도 마찬가지이므로 칠 때마다 개수 확인.
- ! 과 ~ 의 혼동 — ! 는 참·거짓을 뒤집고 ~ 는 비트를 한 자리씩 뒤집음. 5 에 붙이면 !5 는 0, ~5 는 -6.
a = 5, b = 3 으로 네 연산자를 차례로 찍어 보는 전체 코드와 실행 결과는 교재 137p~138p CODE 5.9 에 있습니다.
이 절의 핵심 정리
- 비트 연산자는 값 전체가 아니라 0과 1의 한 자리씩을 따진다.
- &는 둘 다 1일 때, |는 하나라도 1일 때 1이다.
- ^는 두 비트가 서로 다를 때만 1이 된다.
- ~는 모든 비트를 뒤집으며 값 하나만 받는다.
- 기호를 둘 겹치면 앞 편의 논리 연산자가 되니 개수를 확인한다.
강의 자료5.2.3 비트 논리 연산자
1 / 10
번호를 누르면 해당 장으로 바로 이동합니다 · 방향키 ← → 로도 넘길 수 있습니다

댓글
댓글 쓰기