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(쉬프트) 연산입니다.

 

 

하지만 한 번 이해하면 어렵지 않으니
잘 이해하고 넘어가셔서
코드에서도 잘 활용하면 좋을 것 같습니다.