💚 비트 연산자(bitwise operator)
- 이진수로 표현된 데이터의 비트(bit) 수준에서의 연산을 수행하는데 사용되는 연산자
- 비트 연산자는 이진수의 각 비트에 대한 논리적인 조작을 수행하거나 데이터를 이동시키는데 사용된다.
💚 자바 비트 연산자 종류
① 비트 AND(&): 두 비트가 모두 1인 경우 결과 비트가 1이 된다.
int a = 5; // 0000 0101
int b = 3; // 0000 0011
int result = a & b; // 0000 0001 (결과: 1)
② 비트 OR(|): 두 비트 중 하나 이상이 1인 경우 결과 비트가 1이 된다.
int a = 5; // 0000 0101
int b = 3; // 0000 0011
int result = a | b; // 0000 0111 (결과: 7)
③ 비트 XOR(^): 두 비트가 서로 다른 경우 결과 비트가 1이 된다.
int a = 5; // 0000 0101
int b = 3; // 0000 0011
int result = a ^ b; // 0000 0110 (결과: 6)
④ 비트 NOT(~): 단항 연산자. 비트를 반전시킨다.
int a = 5; // 0000 0101
int result = ~a; // 1111 1010 (결과: -6)
⑤ 왼쪽 시프트(<<): 각 비트를 지정된 수 만큼 왼쪽으로 이동시킨다. 이동하는 비트는 0으로 채워진다.(x << n은 x * (2의 n제곱)과 같다.)
int a = 5; // 0000 0101
int result = a << 2; // 0001 0100 (결과: 20)
⑥ 오른쪽 시프트(>>): 각 비트를 지정된 수 만큼 오른쪽으로 이동시킨다. 이동하는 비트는 부호 비트와 동일한 값으로 채워진다.(음수일 경우 1, 양수의 경우 0) (x >> n은 x / (2의 n제곱)과 같다.)
int a = 16; // 0001 0000
int result = a >> 2; // 0000 0100 (결과: 4)
⑦ 부호 없는 오른쪽 시프트(>>>): 각 비트를 지정된 수 만큼 오른쪽으로 이동시킨다. 이동하는 비트는 항상 0으로 채워진다.
int a = -16; // 1111 0000
int result = a >>> 2; // 0011 1100 (결과: 60)
'Programming > Java' 카테고리의 다른 글
[Java] Priority Queue 클래스(우선순위 큐 클래스) (0) | 2023.08.28 |
---|---|
[Java] 자바 네이밍 규칙(Java Naming Convention) (0) | 2023.08.03 |
[Java] Map의 entrySet() 메서드 (0) | 2023.07.19 |
[Java] 자바 ArrayList와 LinkedList 비교 (0) | 2023.07.07 |
[Java] 자바 HashSet 정렬법 (0) | 2023.07.07 |
댓글