CAFE

*CPU-Helper*

[04-v] 컴퓨터 뺄셈의 원리; 음수의 표현 - 부호화크기

작성자문교식|작성시간18.08.02|조회수72 목록 댓글 0

컴퓨터 뺄셈의 원리; 음수의 표현 - 부호화크기 (sign-magnitude) 

 

음수의 표현;  (1) 부호화 크기 (sign-magnitude) 

 

수학에서는 숫자 앞에 '-' 기호를 붙여준다.

컴퓨터는 음수를 어떻게 표현할까?

컴퓨터 안에서는 모든 표현이 '0'과 '1'로만 이루어진다.

 

가장 간단한 음수 표현 방법을 먼저 알아보자.

어떤 정수가 음수라는 것을 나타내기 위해

바이너리 숫자의 첫 비트를 ‘1’로 표시하고 그 나머지로 크기를 나타내도록 한다.

양수인 경우에는 바이너리 숫자의 첫 비트를 ‘0’으로 표시한다.

예를 들면 -3은, 3에 ‘-’부호를 붙이면 되므로,

(4비트를 사용하면) ‘0011’의 첫 비트를 ‘1’로 바꾸면 ‘1011’이 된다.

 

이와 같은 음수 표현방식을 부호화크기(sign-magnitude)라 한다.

명칭에서 알 수 있듯이 부호가 먼저 나오고 숫자의 크기가 따라 붙는다.

 

4비트 바이너리 수를 부호화크기로 나타내면 아래와 같다.

 

4비트 이진수

(부호화크기)

십진수

설명

0000

0

첫 비트가 ‘0’이고(+) 크기가 0이다

0001

1

첫 비트가 ‘0’이고(+) 크기가 1이다

0010

2

첫 비트가 ‘0’이고(+) 크기가 2이다

0011

3

첫 비트가 ‘0’이고(+) 크기가 3이다

0100

4

첫 비트가 ‘0’이고(+) 크기가 4이다

0101

5

첫 비트가 ‘0’이고(+) 크기가 5이다

0110

6

첫 비트가 ‘0’이고(+) 크기가 6이다

0111

7

첫 비트가 ‘0’이고(+) 크기가 7이다

1000

-0

첫 비트가 ‘1’이고(-) 크기가 0이다

1001

-1

첫 비트가 ‘1’이고(-) 크기가 1이다

1010

-2

첫 비트가 ‘1’이고(-) 크기가 2이다

1011

-3

첫 비트가 ‘1’이고(-) 크기가 3이다

1100

-4

첫 비트가 ‘1’이고(-) 크기가 4이다

1101

-5

첫 비트가 ‘1’이고(-) 크기가 5이다

1110

-6

첫 비트가 ‘1’이고(-) 크기가 6이다

1111

-7

첫 비트가 ‘1’이고(-) 크기가 7이다

 

 

[Q] 부호화크기 표현은 십진수로 0이 몇 개인가?   +0과 -0의 두 가지이다 (0000, 1000).

 

하나의 값을 두 개의 다른 형태로 표현 한다는 것은 바람직한 현상이 아니다.

부호화크기의 표현 방식은 이러한 단점을 갖고 있다.

   

예제】아래는 부호화크기 방식의 이진수이다. 각각을 십진수로 나타내시오.

                ① 0110     ② 10100011

      [풀이]

          ① 0110 ; 0110 = + = 4+2 = 6

          ② 10100011 ; 첫 비트가 ‘1’이므로 이 숫자는 음수이다.

               그 크기는 0100011 = + + = 32+2+1 = 35. 따라서 정답은 35.

      

예제】아래의 십진수를 8비트 부호화크기 방식의 이진수로 나타내시오.

                 ① 17 ② 120

     [풀이]

         ①  17 = 16+1 = + 이고 양수이므로 첫 비트가 0이다.

            따라서 17 = 00010001이다.


         ②  120 ; 음수이므로 첫 비트가 1이다. 나머지 비트들은

           120 = 64+32+16+8 = + + + = 0111100이다.

           따라서 -120 = 10111100.


이제 부호화크기 방식으로 표현된 음수의 덧셈을 생각해 보자.

 

위의 예에서, 7-2 = 7+(-2)이므로, 0111+1010 = 10001

 


부호화크기를 사용하므로 10001은 십진수로 -1이다.

이는 오답인데 왜 그러할까?

 

덧셈하는 과정에서 1 올라가는 수와 부호를 더한 것이 오류이다.

첫비트가 ‘1’이면 음수를 나타내는 부호이며 크기는 갖고 있지 않다.

따라서 부호와 숫자를 더하는 오류가 발생하였다.

이러한 문제점을 해결할 수 없을까?


♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠ 

        

연습문아래는 부호화크기 방식의 이진수이다. 각각을 십진수로 나타내시오.

                ① 10000110     ② 00100001

          


연습문아래의 십진수를 8비트 부호화크기 방식의 이진수로 나타내시오.

                 ① 111  ② 30

    

연습문부호화 크기 방식의 단점을 열거하시오.

 




다음검색
현재 게시글 추가 기능 열기
  • 북마크
  • 신고 센터로 신고

댓글

댓글 리스트
맨위로

카페 검색

카페 검색어 입력폼