JAVA/포스팅

자바 비트 논리 연산자 (Bitwise Logical Operators)

짜집퍼박사(짜박) 2023. 11. 1. 21:25

자바의 비트 논리 연산자 (Bitwise Logical Operators)는 변수의 비트 수준에서 논리 연산을 수행하는 데 사용됩니다. 이러한 연산자는 정수 데이터 타입 (int, long)의 이진 표현을 조작하거나 비트 단위로 조건을 조합하고 조작하는 데 유용합니다. 자바의 비트 논리 연산자는 다음과 같습니다.

 

1. 비트 AND (&)

& 연산자는 두 개의 피연산자의 각 비트에 대해 논리 AND 연산을 수행합니다. 두 비트가 모두 1인 경우에만 결과 비트가 1이 됩니다.

int a = 5; // 0101 (2진수)
int b = 3; // 0011 (2진수)
int result = a & b; // result는 0001 (2진수), 즉 1 (10진수)

2. 비트 OR (|)

| 연산자는 두 개의 피연산자의 각 비트에 대해 논리 OR 연산을 수행합니다. 두 비트 중 하나 이상이 1인 경우 결과 비트가 1이 됩니다.

int x = 5; // 0101 (2진수)
int y = 3; // 0011 (2진수)
int result = x | y; // result는 0111 (2진수), 즉 7 (10진수)

3. 비트 XOR (^)

^ 연산자는 두 개의 피연산자의 각 비트에 대해 논리 XOR (배타적 OR) 연산을 수행합니다. 두 비트가 서로 다른 경우 결과 비트가 1이 됩니다.

int m = 5; // 0101 (2진수)
int n = 3; // 0011 (2진수)
int result = m ^ n; // result는 0110 (2진수), 즉 6 (10진수)

4. 비트 NOT (~)

~ 연산자는 피연산자의 각 비트를 반전시킵니다. 0은 1로, 1은 0으로 변경됩니다.

int p = 5; // 0101 (2진수)
int result = ~p; // result는 11111111111111111111111111111010 (2진수), 즉 -6 (10진수)

비트 논리 연산자는 비트 조작과 마스킹 작업 등에서 주로 사용됩니다. 또한, 이러한 연산자는 기계어 수준의 조작을 수행할 때 사용될 수 있으며, 특정 하드웨어와의 통신이나 비트 단위 데이터 처리에 유용합니다. 그러나 주의해야 할 점은 비트 논리 연산자를 사용할 때 코드의 가독성을 유지하고 의도를 명확히 전달해야 하며, 부적절한 사용은 코드를 복잡하게 만들고 버그를 발생시킬 수 있습니다.

 

With ChatGPT