반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 유학생대학생활
- 미국대학
- CSUS
- 파이데이아창의인재학과
- California State University Sacramento
- 자바
- java
- 부산외대
- 케네스로그
- 2+2
- 개인 프로젝트 개발일지
- 자바 스터디
- JVM아키텍처
- 해외유학
- 케네스
- jpa
- 미국유학생
- 비전공자 git
- Java 스터디
- i-20
- 미국대학생활
- 만다라트프로젝트
- 미국유학생활
- 사이드프로젝트
- 개발일지
- F1학생비자
- 복수학위제도
- 유학생 준비물
- 미국유학
- Kenneth Park
Archives
- Today
- Total
케네스로그
[Java] 쉬프트 연산자 <<, <<< 본문
반응형
쉬프트 연산자 shift operator
shift v. 옮기다 이동하다
쉬프트 연산자는 비트 표현의 자릿수를 옮기는 연산을 말합니다. 비트 연산자와 마찬가지로 저수준에서 사용할 수 있으며, 2진법 체계의 특성을 응용하여 연산을 할 수 있습니다.
왼쪽 쉬프트 연산 <<
int x = 10;
int y = 7;
System.out.println("b's bit exp: " + Integer.toBinaryString(x)); // 1010
System.out.println("y's bit exp: " + Integer.toBinaryString(y)); // 111
System.out.println("x<<1: " + Integer.toBinaryString(x<<1)); // 10100
System.out.println("y<<1 : "+Integer.toBinaryString(y<<1)); // 1110
비트표현에서 왼쪽으로 한칸씩 밀어(shift)서 연산을 수행합니다.
💡 left shirt INSIGHT!!
n만큼 shift연산을 진행하면, 정수값에 2^n을 곱한것과 같은 효과를 보인다.
오른쪽 쉬프트 연산 >>
💡right shift INSIGHT!!
left shift와 반대로, n만큼 shift연산을 하면 2^n을 나눈것과 같은 결과를 보인다.
int x = 10;
int y = 7;
System.out.println("b's bit exp: " + Integer.toBinaryString(x)); // 1010
System.out.println("y's bit exp: " + Integer.toBinaryString(y)); // 111
System.out.println("x>>1: " + Integer.toBinaryString(x>>1)); // 101
System.out.println("y>>1 : "+Integer.toBinaryString(y>>1)); // 11
Unsigned 쉬프트 연산 >>>
unsigned shift는 쉬프트 연산 후 밀어버린 부분을 전부 0으로 채워줍니다.
단, >>>연산은 음수를 보장하지 않습니다.
long b = -2147483648 // 1000 0000 0000 0000 0000 0000 0000 0000
System.out.println("b>>>1 : " + Integer.toBinaryString(b >>> 1));
// 0100 0000 0000 0000 0000 0000 0000 0000
System.out.println("b>>>1 : "+(b>>>1)); // 1073741824
System.out.println("b>>>1 : " + Integer.toBinaryString(b >>> 30));
// 0000 0000 0000 0000 0000 0000 0000 0010
반응형
'Dev > Java' 카테고리의 다른 글
[Java] 클래스 (0) | 2022.02.08 |
---|---|
[Java] 관계 연산자, 균등 연산자 (0) | 2022.02.05 |
[Java] 비트연산자 bitwise (0) | 2022.02.04 |
[Java] 산술연산자 (0) | 2022.02.04 |
[Java] 타입 추론 var (0) | 2022.01.30 |