
[컴퓨터 구조] 시프트 연산

·
CS/컴퓨터 구조
오늘은 ALU가 수행하는 기본적인 연산 중 하나인 시프트연산과 그 종류에 대해서 알아보겠습니다.1. 논리적 시프트논리적 시프트 연산이란 레지스터 내의 데이터 비트들을 왼쪽 혹은 오른쪽으로 한 칸씩 이동시키는 것을 말합니다.예시를 보겠습니다. 위의 그림은 좌측-시프트연산(shift-left) 수행을 보여주고 있습니다.비트들을 왼쪽으로 한 칸씩 이동하고, 맨 우측 비트로는 0이 들어오는것을 확인할 수 있습니다.0100 비트에 좌측-시프트 연산을 수행하면 1000이 되어 2를 곱한 결과가 됩니다. 반대 방향인 우측-시프트(shift-right) 연산에서는 최상위 비트에 0이 들어오고, 모든 비트들이 우측으로 한칸씩 이동합니다.최하위 비트는 버리게 됩니다. 이 경우에는 0100이 0010이 되어 원래의 수를 ..