비트 연산자란?
비트 단위의 연산에 사용되는 연산자
비트 연산자의 종류
산술 연산자(<<, >>)
a << b : 2진수 a 를 b 비트 만큼 왼쪽으로 미는 연산
a >> b : 2진수 a 를 b 비트 만큼 오른쪽으로 미는 연산
int x = 7;
System.out.println("x << 2 = " + (x << 2)); // 0111(2) -> 011100(2) : 28
System.out.println("x >> 2 = " + (x >> 2)); // 0111(2) -> 0001(2) : 1
논리 연산자(&, |, ^, ~)
& : 두 비트가 모두 1일 때만 1
| : 두 비트 중 하나라도 1이면 1
^ : 두 비트가 서로 다르면 1, 같으면 0(xor 연산)
~ : 비트를 반전시키는 부정 연산자(1 -> 0, 0 -> 1)
int a = 8; // 01000(2)
int b = 17; // 010001(2)
System.out.println("a & b = " + (a & b)); // 000000(2) -> 0
System.out.println("a | b = " + (a | b)); // 011001(2) -> 25
System.out.println("a ^ b = " + (a ^ b)); // 011001(2) -> 25
System.out.println("~a = " + ~a); // 10111(2) -> 01001(2)의 보수 -> -9
System.out.println("~b = " + ~b); // 101110(2) -> 010010(2)의 보수 -> -18
'Java' 카테고리의 다른 글
문자열(String)의 생성과 비교 (0) | 2023.10.08 |
---|---|
산술 변환 (0) | 2023.09.19 |
스레드 동기화(synchronized) (0) | 2023.04.12 |
상속 (0) | 2023.04.07 |
접근제어자와 Getter & Setter (0) | 2023.04.06 |