C++
[개념] Shift(쉬프트) 연산(<<, >>) - C++
HongCorin
2022. 9. 6. 06:59
반응형
1. Shift(쉬프트) 연산이란?
bit(비트)를 이동 한 2곱하기, 2나누기 연산입니다.
활용 : *2 또는 /2 연산 시
장점 : 코드에서 숫자를 사용해서 연산하는 것 보다 빠르다.
단점 : Shift(쉬프트) 연산을 모르는 사람이 보면 이해 못 한다.
ex)
5
를 binary(2진수) 8 bit 로 표현하면 아래와 같습니다.
5 X 2 = 10
를 동일하게 표현하면 아래와 같습니다.
bit(비트)가 << 왼쪽으로 한 칸 씩 이동한 것
을 볼 수 있습니다.
이렇게 비트(bit)를
왼쪽 이동, 오른쪽 이동 하는 것은
X2 와 ÷2 연산을 의미합니다.
2. C++ Shift(쉬프트) 연산
#_표기
X 2의 n승 = (대상 변수) << n
÷ 2의 n승 = (대상 변수) >> n
//예제 코드
#include <iostream>
using namespace std;
int main() {
int a = 5;
for (int i = 0; i < 3; ++i)
{
cout << a << endl;
a = a << 1; // a X 2^1
}
a = a >> 2; // a / 2^2
cout << a << endl;
return 0;
}
개념은 쉽지만,
막상 코드에서 보면 헷갈리는 shift(쉬프트) 연산입니다.
하지만 한 번 이해하면 어렵지 않으니
잘 이해하고 넘어가셔서
코드에서도 잘 활용하면 좋을 것 같습니다.
