1. 사칙연산에 대해
사칙연산이란 보통 덧셈, 뺄셈, 곱셈, 나눗셈으로 이 네 가지를 뜻한다. 10진수가 2진수로 바뀐다 하더라도 그 계산 방식은 동일하며, 상호간 변환하면 그 결과값도 일치한다. 다른 점은 컴퓨터가 쓰는 경우 음수를 따로 표현할 방법이 없기에 최고 자릿수에 부호가 들어간 2의 보수로 변환하여 쓰인다는 것이 있으므로 이를 인지하도록 한다. 이에 따라 표현할 수 있는 수가 제한되고 계산되는 자릿수도 중요하게 된다. 여기서는 음수표현이 가능한 8자리를 기준으로 한다.
2. 덧셈 연산
사칙연산 중에서도 가장 기본적인 연산으로 간단하다. 덧셈의 예로 피가수 011010012에 가수 000001012를 더할 것이다.
+ ) 011010012 (=10510)
+ ) 000001012 (=510)
+ ) 011011102 (=11010)
다른 예시로 011010012에 음수인 가수 111110112를 더하면 뺄셈과 같게 된다. 8번째 자릿수에 음수라는 의미로 숫자가 있으며, 이에 따라 이 수는 2의 보수로 읽어야 한다.
+ ) 011010012 (=10510)
+ ) 111110112 (=-510)
+ ) 011001002 (=10010)
두 계산 결과는 10진수와 동일하다는 것을 알 수 있다. 뺄셈을 하지 않고 음수를 더 할 필요가 있는지에 대해 이상하게 볼 수 있으나 덧셈기라는 계산기 하나만으로 덧셈과 뺄셈 모두를 할 수 있다는 것에 의의가 있다. 그 외에 가수가 복수인 경우도 아래와 같이 된다.
+ ) 011010012 (=10510)
+ ) 000001012 (=510)
+ ) 100111002 (=-10010)
+ ) 000010102 (=1010)
이렇게 2진수 8자리 기준으로 결과치가 -128∼+127사이일 때 덧셈은 정상적으로 계산되지만 벗어나는 경우 아래와 같이 오류가 발생한다.
+ ) 011010012 (=10510)
+ ) 001100102 (=5010)
+ ) 100110112 (=-10110)
이와 같은 오류가 발생하지 않도록 결과의 범위에 따라 자릿수를 확장해야 할 수도 있다.
3. 뺄셈 연산
덧셈의 반대되는 개념으로 일반적인 뺄셈은 피감수의 수치를 줄여간다. 아래는 기본적인 2진수 8자리의 뺄셈으로 피감수 011010012에 감수가 001100102로 피감수가 감수보다 큰 경우이다.
- ) 011010012 (=10510)
- ) 001100102 (=5010)
- ) 001101112 (=5510)
10진수로 변환하여도 결과는 동일하다는 것을 알 수 있다. 다음은 피감수 001100102에 감수가 011010012로 피감수가 감수보다 작은 경우이다.
- ) 001100102 (=5010)
- ) 011010012 (=10510)
- ) 110010012 (=-5510)
연산 결과는 부호자리인 8번째 자릿수에 음수라는 의미로 숫자가 생겼으며, 이에 따라 이 결과치는 2의 보수로 읽어야한다. 110010012를 001101102 (1의 보수)로 변환한 후 1을 더해 001101112(2의 보수)가 나온 것을 10진수로 변환하여 -5510임을 알 수 있다.
4. 곱셈 연산
덧셈 연산을 반복하는 개념으로 피승수만으로 덧셈하는 것을 승수만큼 반복한다.
× ) 000100012 (=1710)
× ) 000001012 (=510)
× ) 00010001
× ) 0000000
× ) 010001
× ) 010101012 (=8510)
결과가 10진수와 일치함을 알 수 있다. 승수가 음수인 경우 아래와 같이 된다.
× ) 000100012 (=1710)
× ) 111110112 (=-510)
× ) 00010001
× ) 0010001
× ) 000000
× ) 10001
× ) 0001
× ) 001
× ) 01
× ) 1
× ) 101010112 (=-8510)
자릿수가 8개를 초과하는 만큼 범위 밖의 올림이 생기지만 결과는 10진수의 곱셈과 일치한다.
5. 나눗셈 연산
곱셈의 반대되는 개념으로 피제수가 될 때까지 제수를 반복해서 덧셈할 횟수를 구하는 것이다.
000001012 (=510) ) 000000112 (=310)
000001012 (=510) ) 000100012 (=1710)
000001012 (=510) ) 0000101
000001012 (=510) ) 00000111
000001012 (=510) ) 00000101
000001012 (=510) ) 000000102 (=210)
계산 결과 10진수의 나눗셈과 일치한다. 식의 위와 아래에서 몫과 나머지를 확인할 수 있다. 제수가 음수인 나눗셈의 경우 단순 수치만 비교하면 피제수보다 제수가 큰 상태가 되고, 각 자릿수별 몫만큼 뺄셈할 때 되려 수치가 증가하는 상황이 발생한다. 이에 제수를 2의 보수로 변환하여 계산하고, 구한 몫을 2의 보수로 재변환한다.
제수: 111110112 (=-510) → 00000101(=510)
000001012 (=510) ) 000000112 (=310)
000001012 (=510) ) 000100012 (=1710)
000001012 (=510) ) 0000101
000001012 (=510) ) 00000111
000001012 (=510) ) 00000101
000001012 (=510) ) 000000102 (=210)
몫: 00000011(=310) →11111101(-310)
111110112 (=-510) ) 111111012 (=-310)
111110112 (=-510) ) 000100012 (=1710)
111110112 (=-510) ) 00001111
111110112 (=-510) ) 000000102 (=210)
피제수와 제수 중 하나만 음수일 경우에는 2의 보수로 계산 후 몫을 2의 보수로 재변환한다. 피제수와 제수 모두 음수일 경우에는 모두 2의 보수로 계산만 하고 몫은 그대로 구한다.
6. 결론
이렇게 직접 계산하는 방법을 알아만 두고(나눗셈은 기억에서도 지우도록 한다.), 평소에는 컴퓨터의 계산기를 사용하도록 한다.
댓글 없음:
댓글 쓰기