본문 바로가기
공부/기타

비트 연산자 사용하기 - 1편

by 아찌방 2024. 1. 22.

 

비트 연산자를 사용하여 정수형 데이터의 비트 단위 조작을 할 수가 있습니다.

 

주요 비트 연산자는

 

종류 설명
AND(&) 두 비트가 모두 1일 때만 결과가 1이 됩니다.
OR(|) 두 비트 중 하나라도 1이면 결과가 1이 됩니다.
XOR(^) 두 비트가 서로 다르면 결과가 1이 됩니다.
NOT(~) 비트를 반전시킵니다. 0은 1로, 1은 0으로 바꿉니다.
시프트 연산자(<<, >>, >>>)
  • << (왼쪽 시프트): 비트를 왼쪽으로 이동시킵니다. 오른쪽에 0으로 채워집니다.
  • >> (오른쪽 시프트): 비트를 오른쪽으로 이동시킵니다. 왼쪽에 부호 비트로 채워집니다.
  • >>> (부호 없는 오른쪽 시프트): 비트를 오른쪽으로 이동시키되, 왼쪽에 0으로 채웁니다.

 

정도가 있습니다.

 

예시

1. AND(&) 연산자 : 두 비트가 모두 1일 때만 결과가 1이 됩니다.

int a = 5;    // 이진수: 0101
int b = 3;    // 이진수: 0011
int result = a & b; // 결과: 0001 (1)

 

 

2. OR(|) 연산자 : 두 비트 중 하나라도 1이면 결과가 1이 됩니다.

int a = 5;    // 이진수: 0101
int b = 3;    // 이진수: 0011
int result = a | b; // 결과: 0111 (7)

 

 

3. XOR(^) 연산자 : 두 비트가 서로 다르면 결과가 1이 됩니다.

int a = 5;    // 이진수: 0101
int b = 3;    // 이진수: 0011
int result = a ^ b; // 결과: 0110 (6)

 

 

4. NOT(~) 연산자 : 비트를 반전시킵니다. 0은 1로, 1은 0으로 바꿉니다.

int a = 5;    // 이진수: 0101
int result = ~a;  // 결과: 1010 (-6)

 

 

5. 시프트 연산자

1) << (왼쪽 시프트) : 비트를 왼쪽으로 이동시킵니다. 오른쪽에 0으로 채워집니다.

2) >> (오른쪽 시프트) : 비트를 오른쪽으로 이동시킵니다. 왼쪽에 부호 비트로 채워집니다.

3) >>> (부호 없는 오른쪽 시프트) : 비트를 오른쪽으로 이동시키되, 왼쪽에 0으로 채웁니다.

int a = 5;    // 이진수: 0101
int resultLeftShift = a << 1;  // 결과: 1010 (10)
int resultRightShift = a >> 1; // 결과: 0010 (2)

 

다음에 또 봐요

 

728x90