JAVA/JAVA 이용하기

[JAVA] JAVA Shift 쉬프트 연산자란? Shift연산자 사용방법

h0-0cat 2023. 6. 9. 18:12
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