'C++' Shift operator

토스트·2024년 12월 9일
0

'C++' basic

목록 보기
4/35

시프트 연산자 (Shift operator)

비트 연산자 중 하나로, 비트들은 왼쪽 또는 오른쪽으로 이동시키는 연산입니다.

왼쪽 시프트 연산자 '<<'

비트들을 왼쪽으로 이동시킵니다. 이동한 비트의 오른쪽에 새로운 비트가 0으로 채워지고, 가장 왼쪽에 있는 비트는 버려집니다.

#include <iostream>

using namespace std;

int main() {
	int a = 5; // 이진수로 0000 0101
    int b = a << 1; // 왼쪽으로 1비트 시프트 (이진수로 0000 1010)
    int c = a << 2; // 왼쪽으로 2비트 시프트 (이진수로 0001 0100)
      
    return 0;
}

a = 5, b = 10, c = 20

오른쪽 시프트 연산자 '>>'

비트들을 오른쪽으로 이동시킵니다. 이동한 비트의 왼쪽에 새로운 비트가 0으로 채워지고, 가장 오른쪽에 있는 비트는 버려집니다.

#include <iostream>

using namespace std;

int main() {
	int a = 5; // 이진수로 0000 0101
    int b = a >> 1; // 왼쪽으로 1비트 시프트 (이진수로 0000 0010) 
    int c = a << 2; // 왼쪽으로 2비트 시프트 (이진수로 0000 0001)
    
    return 0;
}

a = 5, b = 2, c = 1

활용

정수 n이 1시간마다 2배 씩 증가합니다. t시간 후 n의 값은?

#include <iostream>

using namespace std;

int main() {
	int n = 7;
    int t;
   
    cin >> t;
    
    n = n << t;
    
    cout << n << endl;
    
	return 0;
}

0개의 댓글