▶ 쉬프트 연산
ㆍ 개념은 매우 간단하다.
1. >> 오른쪽으로 한칸 밀겠다
2. << 왼쪽으로 한칸 밀겠다
▶ 어셈블리와 프로그래머 계산기를 이용한 실습
ㆍ eax에 0x12345678이라는 값을 넣어보고 16진수로 출력해봤다.
ㆍ shl키워드 : 비트연산 왼쪽으로 숫자만큼 밀어라
ㆍ shr키워드 : 비트연산 오른쪽으로 숫자만큼 밀어라
ㆍ 위 코드를 실행시키니 결과가 이렇게 나왔다! 프로그래머 계산기를 이용해 확인해 보자
1. HEX(16진수) : 12345678을 입력해주었다.
2. Lsh 8을 하자 어셈블리와 같은 결과 출력
3. Rsh 8을 하자 어셈블리와 같은 결과 출력
더보기
※ 어셈블리어가 슬슬 눈에 들어오는것 같다.
▶ 쉬프트연산의 장점
ㆍ 2의 배수와 관련된 연산을 압도적으로 빠른 속도로 연산 처리할 수 있다.
ㆍ 1칸을 왼쪽으로 옮기면 2를 곱한것 오른쪽으로 옮기면 2로 나눈것.
ㆍ 2칸을 왼쪽으로 옮기면 4를 곱한것 오른쪽으로 옮기면 4로 나눈것.
※ 이런식으로 내부적으로 빠른 연산을 수행할 수 있다.
▶ 쉬프트 연산의 실질적 활용 예시
ㆍ 위와 같은 곱셈과 나눗셈
ㆍ 게임서버에서 ObjectID를 만들 때 (낮은 비트로 만들고 쉬프트연산으로 앞쪽으로 쭉~밀어줘서 오브젝트와 캐릭터를 구분하는 그룹 등으로 이용한다)