어제 배웠던 연산자 외에도
옛날에 많이 쓰였던 연산자가 있습니다.
바로 Shift 연산자인데요.
Shift는 옮기다, 이동하다라는 의미로
다중 선택을 하기 위한 연산자입니다.
형태는 (십진수 << 정수) 의 형태이며
<< : 앞에 있는 수 (십진수)를 2진수로 바꾸고,
뒤에 있는 수(정수)만큼 왼쪽으로 밀라는 뜻입니다.
즉, 비어있는(오른쪽) 칸수를 0으로 채우고,
2진수를 다시 10진수로 바꾸는 것입니다.
예제를 봅시다.
어떤 거리에 여러 카페들이 있다고 가정하면
24시간 : 1 << 0 = 1
와이파이 : 1 << 1 = 2
흡연실 1 << 2 = 4
주차장 1 << 3 = 8
여기서 각각의 매장은 고유 번호를 갖습니다.
고유번호를 큰 값부터 차례대로 매칭해봅니다.
그러면 다음과 같은 옵션을 갖게 됩니다.
A매장 : 1 => 24시간
B매장 : 8 => 주차장
C매장 : 13 => 주차장 + 흡연실 + 24시간
D매장 :6 => 흡연실 + 와이파이
그렇다면 (150 << 6) 의 출력은 어떻게 될까요?
150을 2진수로 바꾸면
1 0 0 1 0 1 1 0 라고 나오고
여기에 0을 6개 붙여줍니다.
1 0 0 1 0 1 1 0 0 0 0 0 0 0
그러면 이렇게 표시할 수 있습니다.
이걸 다시 10진수로 바꾸면
`128 + 256 + 1024 + 8192 = 9600이 나옵니다.
잘 사용하지 않으니
이런게 있다 정도로 숙지하고 넘어가겠습니다!
'Java > 이론' 카테고리의 다른 글
[Java] Random 기능 (0) | 2024.11.22 |
---|---|
[Java] 삼항 연산자 (6) | 2024.11.22 |
[Java] Operator - 연산자 (0) | 2024.11.21 |
[Java] 자바 개발 효율을 높이는 단축키와 출력 방법 (0) | 2024.11.21 |
[Java] 자바 자료형의 이해: 기본형과 참조형, 그리고 메모리 구조 탐구 (2) | 2024.11.20 |