컴퓨터의 연산
개요
컴퓨터라는 것의 본질은 무엇일까요? 먼저 컴퓨터의 어원에 대해 알아보겠다. Compute
는 계산하다 라는 의미를 가지고 있다. 컴퓨터의 본질은 계산 즉 덧셈, 뺄셈, 곱셈, 나눗셈
을 빠르게 처리하기 위한 용도로 만들어 졌다. 관련하여 유명한 영화도 있다. 오늘은 컴퓨터가 어떻게 연산을 하는지에 대해 알아 보자.
진법 변환
2진수 | 16진수 | 10진수 |
---|---|---|
0000 | 0 | 0 |
0001 | 1 | 1 |
0010 | 2 | 2 |
0011 | 3 | 3 |
0100 | 4 | 4 |
0101 | 5 | 5 |
0110 | 6 | 6 |
0111 | 7 | 7 |
1000 | 8 | 8 |
1001 | 9 | |
1010 | A | |
1011 | B | |
1100 | C | |
1101 | D | |
1110 | E | |
1111 | F |
컴퓨터의 연산
덧셈
덧셈은 컴퓨터연산의 근본 이다. 뺄셈, 곱셈, 나눗셈 모두 덧셈 연산을 기반으로 동작 합니다. 덧셈은 2진수 덧셈을 수행하면 된다.
2진수 | 10진수 |
---|---|
0001 + 0101 = 0110 | 1 + 5 |
뺄셈
컴퓨터의 뺄셈을 알기 위해서는 먼저 보수
라는 개념을 알아야 한다.
보수
- 보수란 더해서 그 숫자가 되는 수 이다.
- 뺄셈이란 보수를 덧셈 하는 것이다.
- 10진수 체계에선 10의 보수를 활용하여 빼기를 구현할 수 있다.
- 예시) 13 - 6
- 13에다 6에대한 10의 보수를 4를 더한다. (6에다 얼마를 더하면 10이 되지 => 4)
- 13 에다 4를 더하고, 10의 자리는 버린다.(절사)
- 13 + 4 = 17
- 10의 자리는 버린다(절사). 결과는 7
- 예시) 16 - 7
- 16에다 7에대한 10의 보수를 3을 더한다. (7에다 얼마를 더하면 10이 되지 => 3)
- 16 + 3 = 19
- 10의 자리는 버린다(절사). 결과는 9
- 예시) 13 - 6
- 10진수 체계에선 10의 보수를 활용하여 빼기를 구현할 수 있다.
앞서 말했든 컴퓨터는 덧셈을 기반으로 뺼샘 연산을 진행한다. 위에서 설명한 보수를 사용하여 뺄셈을 구현해 보자. 원리는 다음과 같다.
- 2진수에서 0은 1로, 1은 0으로 뒤집으면 1의 보수 (bit 마다 NOT 연산)
- 1의 보수에 1을 더하면 2의 보수
- 어떤 숫자에 2의 보수를 더하면 자동으로 2진수 뺄쎔 (단 자리올림은 절사)
- 예시) 8 - 3 = 5
- 8의 2진수: 1000
- 3의 2진수: 0011
- 3의 1의 보수 구하기 : 1100
- 3의 1의 보수에 1 더하기 (2의 보수 구하기) : 1101
- 8의 2진수 + 3의 2의 보수 = 10101
- 여기서 자리올림은 버림. 따라서 결과는 0101, 이는 5의 2진수다.
- 따라서 8 - 3의 결과는 5.
곱셈, 나눗셈
위의 원리를 그대로 적용하여 곱셈은 덧셈을 여러번, 나눗셈은 뺄셈을 여러번 수행해서 구현할 수 있다.
- 예시) 3 * 8 = 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 = 24 (3을 8번 더한 수)
- 예시) 24 / 3 = 8 - 3 - 3 - 3 - 3 - 3 - 3 - 3 = 8 (24 에서 3을 8번 뺀 수)
결론
컴퓨터의 본질은 계산이다. ‘Compute’라는 단어에서 알 수 있듯, 컴퓨터는 계산(덧셈, 뺄셈, 곱셈, 나눗셈)을 수행하는 기계다. 컴퓨터가 이러한 계산을 이해하기 위해 진법에 대해 살펴 보았다. 컴퓨터에대해 알기 위해선 2진수, 16진수에 대해 잘 알아 놓자.
그리고, 덧셈과 뺄셈의 원리에 대해 알아 보았다. 컴퓨터에서는 덧셈을 기반으로 뺄셈을 수행하며, 이를 위해 보수라는 개념이 사용된다. 덧셈과 뺄셈을 통해 곱셈과 나눗셈도 구현할 수 있다. 곱셈은 덧셈의 반복이며, 나눗셈은 뺄셈의 반복이다.
AI, 머신러닝 최근들어 핫한 주제들 모두 들어가보면 그 토대는 ‘연산’ 이 있고, 그 연산을 수행하기 위해서 고성능의 부품들(예를들면 GPU)이 필요한 것이다.