비트 연산자(Bitwise Operators)란?

Single Ko·2023년 3월 30일
0

java

목록 보기
1/28

비트 연산자는 정수를 이진수로 표현한 후 각 비트별로 논리 연산을 수행하는 연산자입니다. 비트 연산자는 다음과 같은 종류가 있습니다.

  1. 비트곱( and, &): 두 비트가 모두 1일 때만 결과가 1이 되는 연산자입니다. 예를 들어, 5 & 3 = 1 입니다. 왜냐하면 5는 이진수로 0101이고, 3은 이진수로 0011이기 때문에 각 비트별로 and 연산을 하면 0001이 되기 때문입니다.

  2. 비트합( or , |): 두 비트 중 하나라도 1일 때 결과가 1이 되는 연산자입니다. 예를 들어, 5 | 3 = 7 입니다. 왜냐하면 5는 이진수로 0101이고, 3은 이진수로 0011이기 때문에 각 비트별로 or 연산을 하면 0111이 되기 때문입니다.

  3. 배타적 논리합(xor, ^): 두 비트가 서로 다를 때 결과가 1이 되는 연산자입니다. 예를 들어, 5 ^ 3 = 6 입니다. 왜냐하면 5는 이진수로 0101이고, 3은 이진수로 0011이기 때문에 각 비트별로 xor 연산을 하면 0110이 되기 때문입니다.

  4. 비트이동 연산자(<< , >>): 정수의 비트를 왼쪽이나 오른쪽으로 일정한 수만큼 이동시키는 연산자입니다. 왼쪽으로 이동시키면 곱하기, 오른쪽으로 이동시키면 나누기와 같은 효과를 줍니다. 예를 들어, 5 << 2 = 20 입니다. 왜냐하면 5는 이진수로 0101이고, 왼쪽으로 두 칸 이동시키면 공백을 0으로 채우고 오른쪽의 두 비트를 버리면서 새로운 값인 10100이 되기 때문입니다. 마찬가지로, 5 >> 2 = 1 입니다. 왜냐하면 오른쪽으로 두 칸 이동시키면 공백을 부호비트와 같게 채우고 왼쪽의 두 비트를 버리면서 새로운 값인 00001이 되기 때문입니다.

비트 연산자는 컴퓨터의 내부 동작 원리를 이해하고 최적화하는 데 유용한 도구입니다. 예를 들어, 특정 비트만 확인하거나 변경하거나 반전시키는 등의 작업을 할 수 있습니다. 또한 암호화나 압축과 같은 알고리즘에도 적용될 수 있습니다. 하지만 비트 연산자를 사용할 때는 주의해야 할 점도 있습니다. 예를 들어, 부호 있는 정수의 경우 비트이동 연산자의 결과가 예상과 다를 수 있습니다. 따라서 비트 연산자를 사용할 때는 항상 문서화와 테스트를 철저히 해야 합니다.

profile
공부 정리 블로그

0개의 댓글