728x90
* Shift 연산자
* >> : 비트값을 주어진 숫자만큼 오른쪽으로 이동시킨다.
* >>> : 비트 값을 주어진 숫자 만큼 오른쪽으로 이동 시킨 후 빈공간을 모두 0으로 채운다.
* << : 비트 값을 주어진 숫자만큼 왼쪽으로 이동시킨다. n비트만큼 밀어낸다.

// 긁지않은 개발자
public class HEx01 {
public static void main(String[] args) {
int i=1;
System.out.println(i); // 1
i = i << 1;
System.out.println(i); // 2
i = i << 1;
System.out.println(i); // 4
i <<= 2;
System.out.println(i); // 16
// n << m ==> n * 2의 m승
i >>= 1;
System.out.println(i); // 8
i >>= 2;
System.out.println(i); // 2
// n >> m ==> n / 2의 m승
}
}
실행 결과
1
2
4
16
8
2
// 긁지않은 개발자
public class HEx02 {
public static void main(String[] args) {
int i=5;
System.out.println(i); // 5
i = i << 1;
System.out.println(i); // 10
i = i << 1;
System.out.println(i); // 20
i <<= 2;
System.out.println(i); // 80
// n << m ==> n * 2의 m승
i >>= 1;
System.out.println(i); // 40
i >>= 2;
System.out.println(i); // 10
// n >> m ==> n / 2의 m승
}
}
실행 결과
5
10
20
80
40
10
// 긁지않은 개발자
public class HEx03 {
public static void main(String[] args) {
int i=3;
System.out.println(i); // 3
i = i << 2;
System.out.println(i); // 12
i = i << 3;
System.out.println(i); // 96
i <<= 1;
System.out.println(i); // 192
// n << m ==> n * 2의 m승
i >>= 1;
System.out.println(i); // 98
i >>= 2;
System.out.println(i); // 24
// n >> m ==> n / 2의 m승
}
}
실행 결과
3
12
96
192
96
24
//긁지않은 개발자
public class HEx {
public static void main(String[] args) {
int i=36;
System.out.println(i); // 36
// 양수의 경우 >> 와 >>>의 결과는 동일하다.
int j = i >> 1;
int k = i >>> 1;
System.out.println(j); // 18
System.out.println(k); // 18
i = -36;
System.out.println(i); // -36
// 음수의 경우 >> 와 >>>의 결과는 전혀 다르다.
j = i >> 1; // 부호비트가 변하지 않는다.
k = i >>> 1; // 달려오는 부호 비트가 0이 된다.
System.out.println(j); // -18
System.out.println(k); // 2147483630
}
}
실행 결과
36
18
18
-36
-18
2147483630

728x90
'JAVA > JAVA 이용하기' 카테고리의 다른 글
[JAVA] JAVA 현재 날짜 출력하기 (0) | 2023.06.09 |
---|---|
[JAVA] JAVA print, println, printf 사용법과 실행 결과 (0) | 2023.06.09 |
[JAVA] Java Byte Overflow(오버플로우), char, 알파벳출력하기 (0) | 2023.06.09 |
[JAVA] JAVA 반올림, bitwise연산자, 변수교환방법 (0) | 2023.06.09 |
[JAVA] JAVA (증감연산자 설명, 사용방법) (0) | 2023.06.09 |