Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 병렬 통신
- C
- network
- c++
- logic gate
- CS50
- 프로그래머스
- 코딩테스트
- 메모리
- codingtest
- broardcast
- 네트워크
- CS
- 논리게이트
- English
- Ethernet
- memory
- javascript
- string
- kakao coding test
- kakao입사
- DRAM
- Kakao
- 프로그래밍
- ram
- Coding Test
- programmers
- 이더넷
- Compiler
- TCP
Archives
- Today
- Total
Code Inside
[개념] Shift(쉬프트) 연산(<<, >>) - C++ 본문
반응형
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(쉬프트) 연산입니다.
하지만 한 번 이해하면 어렵지 않으니
잘 이해하고 넘어가셔서
코드에서도 잘 활용하면 좋을 것 같습니다.

'C++' 카테고리의 다른 글
C/C++ 데이터 타입(DataType) 범위 (0) | 2022.09.20 |
---|---|
[C++] <bits/stdc++.h> 헤더 파일 사용 (0) | 2022.08.29 |
Comments