자 일흔 두 번째 키워드인 'Shifter'을 알아 보았다.
저번 키워드가 Accumulator이었으므로 연관되는 키워드이기 때문에 알아 보았다.

시프터(Shifter)는 중앙 처리 장치(CPU) 또는 디지털 회로에서 비트 시프트 연산을 수행하는 논리 장치이다. 비트 시프트 연산은 데이터의 비트를 왼쪽이나 오른쪽으로 이동시키는 작업으로, 다양한 산술 및 논리 연산에서 중요한 역할을 한다.
왼쪽 산술 시프트(Arithmetic Left Shift)
비트를 왼쪽으로 이동시키고, 오른쪽에 빈 자리를 0으로 채운다.
산술적으로 2의 거듭제곱을 곱하는 효과를 가진다.
오른쪽 산술 시프트(Arithmetic Right Shift)
비트를 오른쪽으로 이동시키고, 왼쪽의 빈 자리를 부호 비트로 채운다.
산술적으로 2의 거듭제곱으로 나누는 효과를 가진다.
왼쪽 논리 시프트(Logical Left Shift)
비트를 왼쪽으로 이동시키고, 오른쪽에 빈 자리를 0으로 채운다.
주로 unsigned 숫자의 곱셈을 위해 사용된다.
오른쪽 논리 시프트(Logical Right Shift)
비트를 오른쪽으로 이동시키고, 왼쪽의 빈 자리를 0으로 채운다.
주로 unsigned 숫자의 나눗셈을 위해 사용된다.
왼쪽 순환 시프트(Rotate Left)
비트를 왼쪽으로 이동시키고, 가장 왼쪽 비트를 오른쪽 끝으로 이동시킨다.
오른쪽 순환 시프트(Rotate Right)
비트를 오른쪽으로 이동시키고, 가장 오른쪽 비트를 왼쪽 끝으로 이동시킨다.
입력
시프터는 연산할 데이터와 시프트할 비트 수를 입력으로 받는다.
비트 이동
입력된 데이터의 비트를 지정된 방향(왼쪽 또는 오른쪽)으로 이동시킨다.
이동된 비트의 빈 자리는 0으로 채워지거나, 부호 비트 또는 순환 이동에 따라 다르게 채워진다.
출력
시프트 연산의 결과는 출력 레지스터에 저장된다.
결과는 이후 연산에 사용되거나 메모리에 저장될 수 있다.
왼쪽 산술 시프트
입력: 0001 1010 (26 in decimal)
연산: 왼쪽으로 1비트 시프트
결과: 0011 0100 (52 in decimal)
오른쪽 산술 시프트
입력: 1110 0000 (224 in decimal, 8-bit signed integer)
연산: 오른쪽으로 1비트 시프트
결과: 1111 0000 (240 in decimal, -16 in signed integer)
왼쪽 논리 시프트
입력: 0001 1010 (26 in decimal)
연산: 왼쪽으로 2비트 시프트
결과: 0110 1000 (104 in decimal)
오른쪽 논리 시프트
입력: 1001 0000 (144 in decimal)
연산: 오른쪽으로 3비트 시프트
결과: 0001 0010 (18 in decimal)
효율적인 연산: 시프트 연산은 곱셈 및 나눗셈 연산을 효율적으로 대체할 수 있다.
비트 조작: 데이터의 특정 비트를 빠르게 조작할 수 있어, 마스크링이나 비트 필드 조작에 유용하다.
디지털 신호 처리: 시프트 연산은 신호 처리 알고리즘에서 중요한 역할을 한다.