산술 시프트 란 무엇입니까?

산술 시프트는 숫자를 곱하거나 나누는 방법입니다. 산술 시프트는 일반적으로 이진수에서 실행됩니다. 그러나이 개념은 모든 번호 매기기 체계에 적용 할 수 있습니다.

다음은 10을 밑으로하는 10 진수를 사용한 예입니다. 250이 산술적으로 왼쪽으로 이동하면 결과 수는 2500이되며 250에 10을 곱한 것입니다. 250을 4 자리 숫자를 0250으로 사용하여 표현한 경우 오른쪽으로 산술적으로 이동하면 결과 숫자는 0025로 250을 10으로 나눈 값입니다. 따라서 산술 시프트는 숫자 체계의 밑수에 숫자를 곱하거나 나누는 방법이라고 말하는 것이 더 정확합니다.

이진수는 밑이 2입니다. 0과 1을 사용하여 표시되며 부호가 있거나 부호가 없습니다. 산술 왼쪽 시프트에서는 숫자가 왼쪽으로 한 칸씩 이동하고 오른쪽에 0이 배치됩니다. 산술 오른쪽 이동에서는 숫자가 한 칸 오른쪽으로 이동하고 가장 왼쪽 숫자는 왼쪽으로 유지됩니다. 일반적으로 시프트는 "n"공간에 대한 것일 수 있습니다.

부호없는 이진수에서 각 위치는 2의 거듭 제곱이므로 이진수 1은 십진수 1, 이진수 10은 십진수 2, 이진수 100은 십진수 4 등입니다. 따라서 0110은 10 진수 6입니다. 산술 왼쪽 시프트가 수행 될 때 결과 숫자는 1100이며 10 진수 12입니다. 산술 오른쪽 이동이 수행 될 때 결과 숫자는 0011이며 10 진수 3입니다.

숫자가 양수와 음수 일 수 있으므로 부호있는 이진수가 사용되며 가장 왼쪽의 비트는 양수의 경우 0, 음수의 경우 1입니다. 따라서 4 비트 숫자 인 0111은 10 진수 7이며 가장 큰 양수입니다. 음수에 가장 자주 사용되는 체계는 10 진수 -1로 1111을 가지며 1000까지 내려갑니다 (10 진수 -8).

예를 들어 1101의 산술 왼쪽 시프트는 10 진수 -3이며 1010은 10 진수 -6입니다. 1010의 산술 오른쪽 이동 (10 진수 -6)은 1101, 즉 10 진수 -3입니다. 가장 왼쪽 비트가 유지됩니다.

산술 시프트가 숫자 체계의 각 숫자에 대한 곱셈과 나눗셈에 항상 해당되는 것은 아닙니다. 숫자 체계의 양쪽 끝에 제한이 있습니다. 예를 들어 왼쪽 시프트 0111, 10 진수 7은 10 진수 -2를, 오른쪽 시프트 1111, 10 진수 -1은 10 진수 -1을 제공합니다.

산술 시프트는 고유의 단순성을 가지며 일반적인 곱셈과 나눗셈보다 훨씬 빠릅니다. 따라서 컴퓨터는 시프트 장치 또는 시프트 레지스터라는 비교적 간단한 메커니즘을 사용하여이 작업을 지원합니다. 숙련 된 프로그래머는 위에서 언급 한 제한을 피하거나 처리하는 한이 작업을 사용합니다.

다른 언어

이 문서가 도움이 되었나요? 피드백 감사드립니다 피드백 감사드립니다

어떻게 도와 드릴까요? 어떻게 도와 드릴까요?