[컴퓨터구조] 보수법과 음수 표현법 | 2의 보수와 1의 보수 완벽 이해

2024. 6. 20. 23:05기초지식

반응형

 


이 글에서는 컴퓨터 구조에서 중요한 2의 보수와 1의 보수 개념을 쉽게 설명하고자 작성하였음.

 

보수법은 컴퓨터 공학과 수학에서 중요한 개념으로, 특히 이진수 계산에서 많이 사용된다. 주로 빼기 연산을 더하기 연산으로 변환하는 데 사용되며, 컴퓨터가 덧셈 연산만으로 뺄셈을 수행할 수 있게 해 준다. 따라서, 보수법은 주로 이진수 연산에서 빼기 연산을 더하기 연산으로 변환하는데 사용되는 기법이다. 반면, Sign-Magnitude Representation와 같은 방법은 양수와 음수를 표현하는 방식입니다.

 

보수법의 종류

  1. 1의 보수법
    : 각 비트를 반전시키는 방법.
  2. 2의 보수법
    : 1 보수에 1 하는 방법. 2의 보수법은 컴퓨터 시스템에서 가장 많이 사용되며, 2의 보수를 사용하면 부호 있는 숫자를 쉽게 표현하고 연산할  있다.

보수법에는 1의 보수법과 2의 보수법이 있으며, 각 방법의 자세한 설명은 아래에 예시와 함께 설명하겠다.

 

 

음수 표현법

  1. 부호-크기 표현 (Sign-Magnitude Representation)
    가장 간단한 형태의 음수 표현 방식 중 하나로 가장 왼쪽 비트를 부호를 나타내는 비트로 사용하고, 나머지 비트들은 해당 수의 크기를 나타낸다.
    예시) 8비트 +5 : 0000 0101 , -5 : 1000 0101로 표현.
  2. 1의 보수 (One's Complement) 
    1의 보수는 음수를 나타내기 위해 모든 비트를 반전시키는 방식으로, 0의 표현이 두 가지로 나뉘어 계산이 복잡해지는 단점이 있다.
    예시) 8비트 +5 : 0000 0101 , -5 : 1111 1010으로 표현 
  3. 2의 보수 (Two's Complement)
    2의 보수는 1의 보수에 1을 더하는 방식으로 음수를 나타낸다. 
    이 방식은 가장 널리 사용되는 방식 중 하나로, 연산이 간편하고 0의 표현이 유일하다는 장점이 있습니다. 
  4. 부호-절댓값(Sign-Magnitude) 표현
    부호-절댓값 표현은 가장 왼쪽 비트를 부호 비트로 사용하고, 나머지 비트들을 숫자의 절댓값을 나타내는 데 사용합니다.
    부호비트가 0이면 양수, 1이면 음수이다.
    예시) 4비트 +5 : 0101 , -5 : 1101

 

 


 

1의 보수법

  • 1 -> 0으로, 0 -> 1로 바꾸는 것. 

예시)

 

원본: 1010
1의 보수: 0101

 

2의 보수법

  • 1 -> 0으로, 0 -> 1로 바꾼 후 +1

예시)

원본:    1010

1의 보수: 0101 (모든 비트를 반전)
+ 1:        0001
-------------------
2의 보수: 0110

보수법을 사용한 뺄셈

  • 보수법은 특히 뺄셈 연산에서 유용하며, 2의 보수법을 사용하면 빼기 연산을 더하기 연산으로 변환할 수 있다.

예시) 7(0111)과 3(0011)을 뺀다고 할 때, 7 - 3  ->  7 + (-3)으로 계산한다고 보면 된다.

먼저, 3의 2의 보수를 구한다.

원본 3 : (0011)


1의 보수: 1100
+ 1:        0001
----------------
2의 보수: 1101

그다음, 7에 3의 보수를 더한다

   0111 (7)

+ 1101 (3의 보수)
---------
1 0100 (5비트가 되므로 맨 앞의 1을 버림)
결과: 0100 (4)

따라서, 결과는 7 - 3 = 4 가 나오게 된다. 

 

8비트 이진수에서 2의 보수를 구할 때의 예시로 다시 한번 정리한다면,

      +5 이진수 표현     ->   0000 0101

  • 부호-크기 표현     ->  1000 0101   (맨 왼쪽 비트만 1로)
  • 1의 보수              ->    1111 1010    (1은 0으로, 0은 1로)  
  • 2의 보수              ->    1111 1011    (1의 보수에 1을 더함)

이러한 보수법의 장점은 아래와 같다.

보수법의 장점

  1. 연산 단순화: 뺄셈을 덧셈으로 변환하여 연산 속도와 효율성을 높입니다.
  2. 오류 검출: 보수법을 사용하면 연산 중 발생할 수 있는 오류를 쉽게 검출할 수 있습니다.
  3. 부호 표현: 부호 있는 이진수를 표현하는데 효과적입니다.

부호-절댓값 표현 (Sign-Magnitude Representation)

  • 가장 왼쪽 비트를 부호 비트로 사용하고, 나머지 비트들을 숫자의 절댓값을 나타낸다. (부호비트 : 0은 양수, 1이면 음수이다.)

예시) 7 - 3

+7 : 0111

-3 : 1011

이 두 숫자를 더하면:

   0111
+ 1011
------
 1 0010 (5비트가 되므로 부호 비트를 따로 처리해야 함)

이 결과는 연산 과정이 복잡하고, 최종 결과를 해석하기 어렵다.

 

보수법과의 차이점

  1. 표현 방식
    • Sign-Magnitude: 가장 왼쪽 비트를 부호 비트로 사용.
    • 1의 보수법: 각 비트를 반전.
    • 2의 보수법: 1의 보수에 1을 더함.
  2. 연산 방식
    • Sign-Magnitude: 덧셈과 뺄셈 시 부호를 고려해야 함.
    • 보수법: 덧셈만으로 뺄셈을 수행.
  3. 복잡도
    • Sign-Magnitude: 부호 비트를 따로 처리해야 하므로 연산이 더 복잡.
    • 보수법: 연산이 단순화됨.

 


1의 보수 vs 2의 보수 비교 표

10진수 양수의 2진 표현 1의 보수 2의 보수
+3 00000011 00000011 00000011
-3   11111100 11111101
+2 00000010 00000010 00000010
-2   11111101 11111110

 

반응형