본문 바로가기

PS/CodeUp

[C++] CodeUp (코드업) 1047 : [기초-비트시프트연산] 정수 1개 입력받아 2배 곱해 출력하기

문제

https://codeup.kr/problem.php?id=1047 

 

[기초-비트시프트연산] 정수 1개 입력받아 2배 곱해 출력하기(설명)

C언어기초100제v1.2 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요.  - 모든 내용

codeup.kr

 

코드
#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;

    cout << (n << 1);
    return 0;
}

 

설명

<< 는 비트를 왼쪽으로 이동시키고, >> 는 비트를 오른쪽으로 이동시킨다.

이미지 출처: [기초-비트시프트연산] 정수 1개 입력받아 2배 곱해 출력하기(설명) (codeup.kr)

2진수로 값을 저장하는 변수 특성상 10(8+2)의 비트를 왼쪽으로 1칸 이동시키면
2배가 되어 20(16+4)이 되고, 오른쪽으로 2칸 이동시키면
1/4배가 되어 2(2+범위에서 벗어난 비트는 삭제됨)가 된다.