CS

컴퓨터의 사칙연산 (보수법의 필요성)

kark 2024. 7. 14. 16:41
728x90

컴퓨터는 compute 계산을 해주는 기계라고 설명했다.

대표적인 계산이라 하면 사칙연산인 덧셈, 뺄셈, 곱셈, 나눗셈이 있다.

 

허나 컴퓨터는 연산의 효율성과 설계의 단순화를 위해

모든 연산을 덧셈으로 처리한다.

 

덧셈은 그냥 그대로 이진수 덧셈을 진행하면 쉽게 결과를 얻을 수 있다.

 

곱셈은 그저 덧셈을 여러번 진행한것과 같다.

 

그렇다면 뺄셈은 덧셈으로 어떻게 빼기를 하게 될까 (나눗셈의 경우 빼기를 여러번 진행..)

 

인간의 10진법의 개념으로 앞 수의 빌리는 과정을 필요로 하게 되면 연산 속도와 효율성이 많이 떨어지게된다.

이진수 11 - 6 = 5 의 연산과정을 만약 빌림과정을 통해 연산하게 되는경우 다음 그림처럼 진행될것이다.

 

 

그렇기에 보수법이라는 개념을 반영하게 된다.

' 보수란 특정 수를 만들어 주기위해 보충해 주는 수 ' 라고 한다.

 

우선 컴퓨터가 사용하는 2의 보수의 개념먼저 확인하기 전에

좀더 쉽게 이해하기 위해 10진수 보수과정을 알아보자.

 

9 - 6 = 3

암산으로 그저 쉽게 나오는 결과지만 보수를 사용한 과정을 알아보자.

 

우선 - 6 을 덧셈으로 바꿔보면

 

9 + (-6) 으로 바꿔줄수 있겠다.

이제 이 -6을 보수로 바꿔줘야 한다.

 

왜냐하면 컴퓨터는 -0110 , -0010 처럼 부호를 따로 두지 않기때문이다.

 

보수를 취하는 방법은 간단하다.

현재 필요한 자리수의 10의 단위에서 빼주는 것이다.

 

10 - 6 = 4

6의 10의 보수는 4

 

그럼 9 + 4 = 13의 결과가 나온다.

이때 10의 자리 1을 빼주면 9 - 6 = 3 의 값을 얻어낼 수 있다.

 

보수법으로 진행한 결과는 결과 조정이 필요하다.

 

보수법의 특성으로 덧셈 연산 후 결과가 기준 자릿수를 넘어가게 될경우

자리수의 기준을 맞추기 위해 가장 왼쪽의 수는 버리게 된다.

 

2222 - 11 = 2211

 

2222 + (-11)

 

-11을 10의 보수로 표현하기위해 현재 연산의 필요한 자릿수 필요단위는 10000

 

10000 - 11 = 9989

 

2222 + 9989 = 12211

 

기준 자릿수를 넘어 앞자리 수를 버리고 2211 의 값을 얻게 된다.

 

지금은 보수의 개념을 정리하기 위해 10진수에서의 보수 개념으로 접근해봤다.

이진수를 다루는 컴퓨터에서 2의 보수에 대해 다시 글을 적어보자.

'CS' 카테고리의 다른 글

String 문자열의 불변성  (1) 2024.09.02
2의 보수  (0) 2024.07.14
고정 소수점, 부동 소수점  (0) 2024.07.09
16진수 표기는 어디에 사용될까  (0) 2024.07.01
bit 비트란  (0) 2024.06.28