C

비트 연산자

1space 2025. 6. 11. 02:31

 

 

비트 연산자란?

개념

  • 비트 연산자비트(bit) 단위로 계산을 수행하는 연산자입니다.
  • 보통 덧셈(+), 뺄셈(-)은 바이트 단위(8비트)로 연산하지만, 비트 연산자는 한 자리씩, 즉 0과 1 단위로 처리합니다.

장점

  • 빠른 연산 속도
  • 메모리 절약
  • 하드웨어 제어, 암호화, 그래픽 처리 등에 자주 사용됩니다.

 

bit와 byte의 관계

  • 1바이트 = 8비트
  • 1비트는 0 또는 1 중 하나의 값을 가집니다.
  • 비트 수가 많아질수록 표현할 수 있는 값의 범위가 커집니다.
비트 수표현 가능한 수 (부호 없음)표현 가능한 수 (부호 있음)
8비트 0 ~ 255 (총 256개) -128 ~ 127
16비트 0 ~ 65535 -32,768 ~ 32,767
 

예: 2^8 = 256 → 8비트는 총 256개의 값을 표현할 수 있습니다.

 

 

10진수 ↔ 2진수 변환 (예시)

10진수 5 → 2진수 00000101
10진수 9 → 2진수 00001001

각각 8비트 기준으로 표현한 것입니다.

 

 

주요 비트 연산자 종류와 의미

🔹 AND: &

  • 두 비트가 모두 1일 때만 결과가 1
 
00000101 (5) 00001001 (9) --------- 00000001 → 1

🔹 OR: |

  • 둘 중 하나라도 1이면 결과가 1
 
00000101 00001001 --------- 00001101 → 13

🔹 XOR: ^ (배타적 OR)

  • 두 비트가 다르면 1, 같으면 0
 
00000101 00001001 --------- 00001100 → 12

🔹 NOT: ~ (단항 연산자)

  • 0은 1로, 1은 0으로 바꿈 (반전)
  • 예: ~5
 
5 → 00000101 ~5 → 11111010 → -6 (2의 보수로 계산)

참고: C언어에서는 정수는 2의 보수 방식으로 저장되기 때문에, ~5의 결과는 단순히 비트 반전된 수가 아니라 -6이 됩니다.

 

2진수 → 10진수 계산 방법

예: 0101 (2진수)

→ 각 자리의 가중치를 곱해서 더합니다.

plaintext
복사편집
0×2³ + 1×2² + 0×2¹ + 1×2⁰ = 0 + 4 + 0 + 1 = 5
 
 

연산자 분류

연산자이름항 수
& AND 이항 연산자
` ` OR
^ XOR 이항 연산자
~ NOT 단항 연산자
 

 

정리 요약

  • 비트 연산자는 연산 속도가 빠르고 메모리 절약에 유리합니다.
  • AND, OR, XOR은 두 수의 각 비트를 비교하여 결과를 냅니다.
  • NOT은 한 수의 비트를 반전시켜 새로운 값을 만듭니다.
  • 실무에서는 하드웨어 제어, 비트 플래그 처리, 마스크 연산 등에 많이 사용됩니다.

'C' 카테고리의 다른 글

제어문 - if / switch문  (0) 2025.06.11
이동 연산자  (0) 2025.06.11
증/감 연산자  (0) 2025.06.11
입출력 함수  (0) 2025.06.11
변수와 상수  (0) 2025.06.11