[C++] 시프트 연산자 - 논리 시프트, 산술 시프트
·
C++
1. 개념시프트 연산 ">" 연산자로 비트를 이동시킬 때, 왼쪽 시프트 연산자인 ">"를 사용하게 되면 왼쪽에는 0 또는 1이 채워지게 된다. 보통 부호가 없으면 0이 채워지고 부호가 있으면 1이 채워지는데, 오른쪽 시프트 연산자를 사용하면 위와 같은 차이가 생기는 이유가 무엇일까? 결론적으로, 양수일경우와 부호가 없는(unsigned) 정수일 경우 논리 시프트가, 음수일 경우 산술 시프트가 사용되어 오른쪽 시프트 연산자를 사용할 때 차이가 발생한다.해당 이유에 대해 파악하기 위해서 우선 세가지 개념( 논리 시프트, 산술 시프트, 보수법 )에 대해 추가로 학습해야한다.논리 시프트컴퓨팅에서 논리 시프트(logical shift)는 피연산자의 모든 비트를 이동하는 시프트 연산이다. 논리 시프트에서는 부호를 ..