Java
[JAVA] 비트연산 정리
cornarong
2021. 8. 17. 18:51
* 이진 비트 연산을 수행해서 결과를 정수로 반환하는 연산자 (정수형만 사용 가능)
1. AND 연산 (&)
- 둘다 '1'일 경우 '1'로 변환
A | 1 | 0 | 1 | 0 |
B | 1 | 0 | 1 | 1 |
Result | 1 | 0 | 1 | 0 |
int A = 10;
int B = 11;
System.out.println("A : " + Integer.toBinaryString(A));
System.out.println("B : " + Integer.toBinaryString(B));
System.out.println("A & B : "+Integer.toBinaryString(A & B));
2. OR 연산 ( | )
- 하나만 '1'일 경우 '1'로 변환
A | 1 | 0 | 1 | 0 |
B | 1 | 0 | 1 | 1 |
Result | 1 | 0 | 1 | 1 |
int A = 10;
int B = 11;
System.out.println("A : " + Integer.toBinaryString(A));
System.out.println("B : " + Integer.toBinaryString(B));
System.out.println("A & B : "+Integer.toBinaryString(A | B));
3. XOR 연산 (^)
- 서로 다를 경우 '1'로 변환
A | 1 | 0 | 1 | 0 |
B | 1 | 0 | 1 | 1 |
Result | 0 | 0 | 0 | 1 |
int A = 10;
int B = 11;
System.out.println("A : " + Integer.toBinaryString(A));
System.out.println("B : " + Integer.toBinaryString(B));
System.out.println("A & B : "+Integer.toBinaryString(A ^ B));
4. NOT 연산 (~)
- 반대로 변환
A | 1 | 0 | 0 | 1 |
Result | 0 | 1 | 1 | 0 |
5. SHIFT 연산 (<< , >>)
1) >> : 오른쪽으로 주어진 비트 수만큼 이동
: 앞에 비어 있는 빈칸은 부호 비트로 채운다
Ex ) >> 2
우측으로 2비트 수 만큼 이동
A = 15 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
result | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
2) << : 왼쪽으로 주어진 비트 수만큼 이동
: 뒤에 비어 있는 빈칸은 0으로 채운다.
Ex) << 2
좌측으로 2비트 수 만큼 이동
A = 15 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
result | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 |