[수학] 보수 계산법 (1의보수, 2의보수) + 필요한 이유

보수란

보수는 보충을 해주는 수를 의미합니다. 현재의 숫자에서 자릿수가 1단계 올라갈 수 있는 수가 몇인지를 구하시면 됩니다.

 

보수 구하기 예시

10진수

1의 보수 : 1+9=10 -> 1의 보수 = 9

3의 보수 : 3+7=10 -> 3의 보수 = 7

 

2진수

1₂의 보수 : 1₂+ 1₂=10₂ -> 1₂의 보수 = 1₂

10₂의 보수 : 1001₂+0111₂=11110₂ -> 1001₂의 보수 = 0111₂

 

컴퓨터에서 보수가 필요한 이유

컴퓨터는 이진수만 이해할 수 있습니다. 그렇다면 음수는 어떻게 표현할 수 있을까요? 음수를 표현하기 위해 보수가 사용됩니다. 컴퓨터에서 보수는 양수를 음수화로 표현하기 위한 방법이 됩니다. 즉, 보충하는 수. 양수에 대한 보수가 음수입니다. 컴퓨터의 CPU는 뺄셈도 모두 덧셈으로 처리한다는 것을 알고 계실 겁니다. 보수를 사용하게 되면 5-5=0의 과정을 컴퓨터는 5+(-5)=0으로 표현되게 되는것입니다. 

 

위의 그림을 보시면 이해가 되실 겁니다. 0001₂ + 와 그의 보수인 1111₂ 을 더했더니 10000₂ 이 된 것을 보실 수 있으실 겁니다. 여기서 최상위 비트인 1을 날려버리게 되면 0이 되는 것입니다.

 

 보수 계산법 

1의 보수 구하기

십진수로는 7이고 이진수로는 00000111₂ 의 보수를 구하는 과정입니다. 1의 보수를 구하는 방법은 굉장히 간단합니다. 1을 0으로 0을 1로 NOT연산을 해주시면 됩니다.

 

2의 보수 구하기

2의 보수를 구하려면 앞서 구했던 1의 보수에 1을 더해주시면 됩니다.

 

2의 보수가 음수인 이유

보수를 구했던 대상인 00000111₂ 과 의 2의 보수인 11111001₂를 더했더니 100000000₂이 나왔습니다. 여기서 최상위 부호를 제외하니 0이 되죠. 즉 00000111₂ + 11111001₂ = 0이 되었습니다. 위의 연산은 00000111₂+ (-00000111₂) 연산이 되었다고 할 수 있습니다. 즉 00000111₂의 2의보수가 00000111₂의 음수가 되는 것입니다.

댓글(1)

  • ㅇㅇ
    2021.03.12 20:33

    마지막 문단 덕분에 이해가 잘 됐습니다 감사합니다

Designed by JB FACTORY