산술 시프트 문서 원본 보기
←
산술 시프트
둘러보기로 이동
검색으로 이동
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
{{위키데이터 속성 추적}} [[파일:Rotate left logically.svg|썸네일|300px|23<sub>[[십진법|(10)]]</sub><small>(00010111<sub>[[이진법|(2)]]</sub>)</small>에 대한 좌측 산술시프트의 예제, 밀려서 새로 생기는 빈칸은 0으로 채워넣는다. 이 연산의 결과는 23에 2를 곱한 수인 46<sub>[[십진법|(10)]]</sub><small>(00101110<sub>[[이진법|(2)]]</sub>)</small>이 나온다.]] [[파일:Rotate right arithmetically.svg|썸네일|300px|23<sub>[[십진법|(10)]]</sub><small>(00010111<sub>[[이진법|(2)]]</sub>)</small>에 대한 우측 산술시프트의 예제, 부호가 정의된 2진법 정수([[:en:Integer (computer science)|signed integer]])에서 산술시프트를 시도하는 경우 최상위 비트(MSB)이자 부호비트([[:en:sign bit|sign bit]])인 0은 그대로 유지되며 한칸씩 좌측으로 이동한다. 이 연산의 결과는 23을 2로 나누고 소수점을 버린 결과인 11<sub>[[십진법|(10)]]</sub><small>(00001011<sub>[[이진법|(2)]]</sub>)</small>이 나온다.]] '''산술 시프트'''(arithmetic shift)는 [[연산자]] 중 하나로서 특수한 2의 [[거듭제곱]]수(2, 4, 8, 16 ... 등)와 관련한 [[곱셈]]과 [[나눗셈]]을 연산할 때 사용된다.... == 개요 == 기호로는 보통 <math>\ll, \gg </math>가 사용되며 <math>a \ll n</math>의 형태로 표시된다. 이 연산의 의미는 [[컴퓨터]]의 [[메모리]]에 저장된 [[2진법]] 숫자를 n[[비트 (단위)|비트]]만큼 좌 또는 우로 이동하라는 의미이며, 한칸마다 2를 곱하거나 나누는 것과 동일한(또는 비슷한) 결과가 나온다. 따라서 이 연산은 다음과 같은 의미를 지닌다 {| style="margin:auto;" | <math> a \ll n = a \times 2^n</math><br /> <math>a \gg n = a \times 2^{-n}</math><br />(소수점 이하 버림) |} 어떤 메모리 값을 2의 배수 형태의 상수와 곱하거나 나눌 때에는 곱셈/나눗셈 대신에 산술 시프트를 이용할 수 있다. 또한 많은 [[중앙 처리 장치|CPU]]에서는 상수 곱셈 등의 연산을 시프트 연산자로 처리하는 것이 [[산술 논리 장치]]를 거치는 것보다 빠르기 때문에, [[컴파일러]]에서는 곱셈/나눗셈 연산을 자동적으로 산술 시프트 명령어로 변환한다. == 논리 시프트와의 차이 == 이와 비슷한 연산으로 [[논리 시프트]]가 있다. 이 연산 역시 비트를 이동하는 연산이나, 산술 시프트와의 제일 큰 차이는 부호비트([[:en:sign bit|sign bit]])가 보존되지 않는다는 것이다. 따라서 ''부호가 정의된 16비트 정수''([[:en:Integer (computer science)|signed integer]])에서 연산의 결과값이100 0000{{이진법}}=32768{{십진법}} 이상의 범위를 넘어갈 경우 부호가 바뀌는 경우가 발생한다. == 예제 == * (a<<3) + (a<<1) 과 10 * a는 같은 뜻이다. ** a=19{{십진법}}=10011{{이진법}}, (a<<3) + (a<<1) = 10011000{{이진법}} + 100110{{이진법}} =10111110{{이진법}}=190{{십진법}} == 같이 보기 == * [[논리 시프트]] == 참고자료 == * [[논리 설계론]] 관련 서적들 * Computer Architecture 4/E: a Quantitative Approach, Hennessy 지음 ({{ISBN|981-259-787-5}} ) {{전거 통제}} [[분류:컴퓨터 산술]]
이 문서에서 사용한 틀:
틀:ISBN
(
원본 보기
)
틀:십진법
(
원본 보기
)
틀:위키데이터 속성 추적
(
원본 보기
)
틀:이진법
(
원본 보기
)
틀:전거 통제
(
원본 보기
)
산술 시프트
문서로 돌아갑니다.
둘러보기 메뉴
개인 도구
로그인
이름공간
문서
토론
한국어
보기
읽기
원본 보기
역사 보기
더 보기
검색
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
특수 문서 목록
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보