풀이 중에서 77을 2진수로 표현하면 01001101 이 된다고 되어 있는데 왜그런가요?
7은 2진수로 표현하면 0111인데 거기서 어떻게 되는 건가요?
안녕하세요.
10진수 77을 2진수로 변경하면 1001101입니다.(1편 핵심요약 62쪽 진법 변환을 참고하세요.)
문제에 8비트라는 조건에 맞춰 앞에 0을 추가하여 8비트로 맞춥니다. 0100 1101
2의 보수는 1의 보수에 +1을 하는 것이고, 1의 보수는 0은 1로, 1은 0으로 변환하는 것입니다.
01001101 -> 1의 보수 -> 10110010 -> 2의 보수(+1) -> 10110011
이제 2비트 오른쪽으로 이동(시프트)하면 맨 앞의 부호 비트를 빼고 이동하면
1 0110011
1 01100
빈 공간을 채우는 패딩 비트는 오른쪽 시프트이면서 2의 보수이므로 1이 들어와
1 1101100 이 됩니다.
산술 Shift
산술 Shift는 부호(Sign)를 고려하여 자리를 이동시키는 연산으로, 2n으로 곱하거나 나눌 때 사용한다.
ㆍ왼쪽으로 n Bit Shift하면 원래 자료에 2n을 곱한 값과 같다.
ㆍ오른쪽으로 n Bit Shift하면 원래 자료를 2n으로 나눈 값과 같다.
ㆍ홀수를 오른쪽으로 한 번 Shift하면 0.5의 오차가 발생한다.
ㆍ산술 Shift는 정수 표현 방식에서만 가능한 방법으로, 정수의 수치 표현 방법에 따라서 표현이 조금씩 다르다.
|
Shift |
수치 표현법 |
-43 |
+43 |
|
Shift Left |
부호화 절대치 |
ㆍPadding Bit : 0 10101011 → 11010110 -43×21, 즉 -86이 된다. |
양수는 모두 같다. ㆍPadding Bit : 0 00101011 → 01010110 43×21, 즉 86이 된다. |
|
1의 보수법 |
ㆍPadding Bit : 1 11010100 → 10101001 -43×21, 즉 -86이 된다. |
||
|
2의 보수법 |
ㆍPadding Bit : 0 11010101 → 10101010 -43×21, 즉 -86이 된다. |
||
|
Shift Right |
부호화 절대치
|
ㆍPadding Bit : 0 ㆍ오차 발생 : 0.5 증가 10101011 → 10010101 -43÷21 → -21.5 → -21 |
양수는 모두 같다. ㆍPadding Bit : 0 00101011 → 00010101 → 21 43÷21, 즉 21.5가 되어야 하지만 오차가 발생하여 0.5가 감소한다. |
|
1의 보수법 |
ㆍPadding Bit : 1 ㆍ오차 발생 : 0.5 증가 11010100 → 11101010 -43÷21 → -21.5 → -21 |
||
|
2의 보수법 |
ㆍPadding Bit : 1 ㆍ오차 발생 : 0.5 감소 11010101 → 11101010 -43÷21 → -21.5 → -22 |
Padding Bit
Shift에서 자리를 이동한 후 생기는 왼쪽이나 오른쪽 끝의 빈자리에 채워지는 비트를 말한다.
오늘도 즐거운 하루 되세요.
"-
*2011-08-18 09:24:14
안녕하세요.
10진수 77을 2진수로 변경하면 1001101입니다.(1편 핵심요약 62쪽 진법 변환을 참고하세요.)
문제에 8비트라는 조건에 맞춰 앞에 0을 추가하여 8비트로 맞춥니다. 0100 1101
2의 보수는 1의 보수에 +1을 하는 것이고, 1의 보수는 0은 1로, 1은 0으로 변환하는 것입니다.
01001101 -> 1의 보수 -> 10110010 -> 2의 보수(+1) -> 10110011
이제 2비트 오른쪽으로 이동(시프트)하면 맨 앞의 부호 비트를 빼고 이동하면
1 0110011
1 01100
빈 공간을 채우는 패딩 비트는 오른쪽 시프트이면서 2의 보수이므로 1이 들어와
1 1101100 이 됩니다.
산술 Shift
산술 Shift는 부호(Sign)를 고려하여 자리를 이동시키는 연산으로, 2n으로 곱하거나 나눌 때 사용한다.
ㆍ왼쪽으로 n Bit Shift하면 원래 자료에 2n을 곱한 값과 같다.
ㆍ오른쪽으로 n Bit Shift하면 원래 자료를 2n으로 나눈 값과 같다.
ㆍ홀수를 오른쪽으로 한 번 Shift하면 0.5의 오차가 발생한다.
ㆍ산술 Shift는 정수 표현 방식에서만 가능한 방법으로, 정수의 수치 표현 방법에 따라서 표현이 조금씩 다르다.
Shift
수치 표현법
-43
+43
Shift
Left
부호화
절대치
ㆍPadding Bit : 0
10101011 → 11010110
-43×21, 즉 -86이 된다.
양수는 모두 같다.
ㆍPadding Bit : 0
00101011 → 01010110
43×21, 즉 86이 된다.
1의
보수법
ㆍPadding Bit : 1
11010100 → 10101001
-43×21, 즉 -86이 된다.
2의
보수법
ㆍPadding Bit : 0
11010101 → 10101010
-43×21, 즉 -86이 된다.
Shift
Right
부호화
절대치
ㆍPadding Bit : 0
ㆍ오차 발생 : 0.5 증가
10101011 → 10010101
-43÷21 → -21.5 → -21
양수는 모두 같다.
ㆍPadding Bit : 0
00101011 → 00010101 → 21
43÷21, 즉 21.5가 되어야 하지만 오차가 발생하여 0.5가 감소한다.
1의
보수법
ㆍPadding Bit : 1
ㆍ오차 발생 : 0.5 증가
11010100 → 11101010
-43÷21 → -21.5 → -21
2의
보수법
ㆍPadding Bit : 1
ㆍ오차 발생 : 0.5 감소
11010101 → 11101010
-43÷21 → -21.5 → -22
Padding Bit
Shift에서 자리를 이동한 후 생기는 왼쪽이나 오른쪽 끝의 빈자리에 채워지는 비트를 말한다.
오늘도 즐거운 하루 되세요.
"