산술Shift는 "부호"를 고려해서 자리를 이동시킨다.
왼쪽으로 이동하면 2의 n승을 곱한 값과 같고 오른쪽으로 이동은 2의 n승으로 나눈 값과 같다.
- 왼쪽 이동
양수
n만큼 이동하면 곱하기 2의 n승 해준다.
음수
1. 부호와 절대치 Padding bit : 0
2. 1의 보수법 Padding bit : 1
3. 2의 보수법 : Padding bit : 0
- 오른쪽 이동
양수
n만큼 이동하면 나누기 2의 n승 해준다.
음수
1.부호와 절대치 : Padding bit:0 오차발생:0.5증가
2. 1의 보수법 : Padding bit : 1 오차발생 : 0.5증가
3. 2의 보수법 : Padding bit : 1 오차발생 0.5 감소
예) 2의보수 1100 1000을 우측쉬프트3회 하세요
부호 1고정하고 나머지 오른쪽 3이동한다음에 빈칸은 페딩비트가 1이므로 1로 채워준다.
1XXX 1001(X:padding bit) -> 1111 1001
예) 부호와 절대치 방식에서 -50을 우측2회 하세요
방법1)
50 = 0011 0010
-50 = 1011 0010(부호와 절대치)
1XX0 1100 (x:padding bit) -> 1000 1100
방법2)
-50%4 = -12.5
부호와 절대치이므로 오차발생 0.5증가하면 -12다.
-12 = 1000 1100
예) 부호와 절대치 방식에서 -50을 좌측 1회 하세요
50 = 0011 0010
-50 = 1011 0010(부호와 절대치)
1110 010x(x:padding bit) -> 1110 0100 (-100)
'기타지식들 > 운영체제' 카테고리의 다른 글
아스키코드,EUC-KR,유니코드,UTF-8알아보기 (0) | 2023.06.04 |
---|---|
운영체제-프로세스란? (0) | 2020.11.17 |
비선점스케줄링 시간구하기 (0) | 2017.02.19 |