Binary Negative Number Representation, Signed Magnitude, Sign and Magnitude, Two's Complement, One's Complement   2진수 음수 표현, 부호 크기 체계, 2진수 보수, 2의 보수, 1의 보수

(2020-03-12)

Self Complement, 자기 보수

1. 2진수 음수의 표현 방법 구분

  ㅇ 부호 크기 체계 (signed magnitude, sign and magnitude system)
     - 첫번째 비트(부호 비트,sign bit) : 부호 비트(보통 가장 왼쪽 첫번째 비트, MSB) 
        . `1` -> 음수, `0` -> 양수 
     - 나머지 비트들 : 절대값 크기(magnitude)
        . 표시범위 : - 2n-1 ~ 2n-1보수 체계 (complement number system,two`s complement)
     - 2의 보수 (Two's Complement)  
        . 표시범위 : -2n-1 ~ 2n-1-1 
           .. 컴퓨터(디지털시스템)에서 보다 많이 사용
     - 1의 보수 (One's Complement)
        . 표시범위 : - 2n-1 ~ 2n-1 


2. 음수의 표현 상의 특징

  ㅇ 부호 크기 체계 : 부호 비트로 음수/양수를 그대로 바꿀 수 있음

  ㅇ 보수 체계      : 보수를 취하여 음수를 표현하게 됨
     - 2의 보수
        . 부호 비트(sign bit) `1`이면, 2N을 빼면 됨
        . 이는, 1의 보수(전체 비트를 반전)의 최하위자리(LSB)에 1 을 더한 수와 같음 
           

     - 1의 보수
        . 단지 `1`을 `0`으로, `0`을 `1`로 바꾸기만하면 됨
        . 이를 자기보수(self-complement)라고도 함


3. 4 비트 표현 例)

  ㅇ 비교표 (부호크기체계,2의보수,1의보수)
     

  ㅇ 최대 양수, 영(0), 최대 음수 비교표
     


4. 비트 길이가 늘어났을 때의 부호 처리 방법

  ㅇ 부호의 확장 (sign extension)
     - 부호크기체계 
        . 부호는 MSB에 복사하여 두고 늘어난 부분 만큼을 `0`으로 채움
     - 2의 보수 및 1의 보수 
        . 늘어난 부분 만큼 부호 비트에 있는 같은 수로 채움


5. 컴퓨터에서 `2의 보수` 사용 이유

  ㅇ 2진 보수(2의 보수,1의 보수)의 장점
     - `음수 표현` 및 `보다 쉽게 연산을 하기` 위함
        . 컴퓨터는 뺄셈 회로가 없으며, 보수를 취하는 회로 만 있음.
           .. 보수를 취하고 더하면 뺄셈이 되므로, 굳이 뺄셈 회로를 따로 둘 필요 없음

     * 2의 보수에 의한 뺄셈 例) 5 - 3 = 5 + (-3) = (0101) + (1101) = (0010) = 2
        . 여기서, -3에 대한 2의 보수는, 0011 -> 1100 (비트 반전) -> 1101 (1 더함)
 
  ㅇ 부호크기체계의 단점
     - 부호비트를 좌,우 어느 끝단에 붙일지 일관성있게 하기가 쉽지 않음
     - 덧셈기 결과의 부호에 대한 결정에 한 단계가 더 필요함
        . 미리 연산 결과를 알 수 없기 때문

  ㅇ (부호크기체계 및 1의 보수)의 단점
     - 영(0)이 `양의 영(+0)`,`음의 영(-0)` 2개를 동시에 갖으므로 부주의한 프로그래밍
       발생 가능성 있음


[(디지털) 수 표현] 1. 디지털 수 체계 2. 기수(radix,base)/가수(mantissa) 3. 보수(complemen) 4. 2의 보수,1의 보수 5. 고정소수점 6. 부동소수점 7. 2진 부동소수점(IEEE 754) 8. 유한어장효과 9. 오버플로우 10. 비트,바이트,워드 11. MSB,LSB

 
        최근수정     요약목록     참고문헌