보수 (Complement)
개요
r 진수 N 에 대해 두 가지의 보수가 있다.
r
의 보수 (r's complement)r-1
의 보수 (r-1's complement)
예를 들면 다음과 같다.
- 2진수에는 2의 보수와 1의 보수가 있다.
- 8진수에는 8의 보수와 7의 보수가 있다.
- 10진수에는 10의 보수와 9의 보수가 있다.
정의
r의 보수와 (r-1)의 보수의 관계
r의 보수
정수부분이 n개의 자리로 구성된 r진수 N에 대한 r의 보수는 (식2.2)와 같이 정의된다.1
10진수 예제
10진수 42
의 10의 보수를 구해보자.
- 주어진 숫자는
42
이므로, . - 정수부분은
42
. 2개의 자리로 이루어져 있으므로, 이다. - 10진수 숫자이므로 .
이를 종합하면 다음과 같다.
쉽게 계산하려면 42
보다 크면서 가장 작은 10
의 거듭제곱수인 100
에서 42
를 빼주면 된다.
즉 이다.
이번에는 10진수 42.31
의 10의 보수를 구해보자.
- 주어진 숫자는
42.31
이므로, . - 정수부분은
42
. 2개의 자리로 이루어져 있으므로, 이다. - 10진수 숫자이므로 .
이를 종합하면 다음과 같다.
2진수 예제
2진수 의 2의 보수를 구해보자.
6자리 수이므로 를 계산해주면 된다.
기계적으로는 모든 비트를 뒤집은 다음 1을 더해주면 2의 보수를 쉽게 구할 수 있다.
110111
001000
- 모든 비트 반전 (1의 보수)001001
- 가장 마지막 자리에 1을 더해준다 (2의 보수)
소수점이 있어도 구하는 방법은 같다.
2진수 의 2의 보수를 구해보자.
기계적으로 구하는 것이 더 쉽다.
1101.11
0010.00
- 모든 비트 반전 (1의 보수)0010.01
- 가장 마지막 자리에 1을 더해준다 모든 비트 반전 (2의 보수)
r-1의 보수
정수부분이 n개의 자리로 구성되고 소수점 아래가 m개의 자리로 구성된 r진수 N에 대한 (r-1)의 보수는 (식2.3)과 같이 정의된다.1
10진수 예제
10진수 42
의 9의 보수를 구해보자.
- 주어진 숫자는
42
이므로, . - 정수부분은
42
. 2개의 자리로 이루어져 있으므로, 이다. - 소수점 아래는 없으므로, 이다.
- 10진수 숫자이므로 .
이를 종합하면 다음과 같다.
라는 것을 알 수 있다.
쉽게 계산하려면 42
보다 크면서 가장 작은 10
의 거듭제곱수인 100
에서 1
을 빼고 42
를 빼주면 된다.
즉 이다.
이번에는 10진수 42.31
의 9의 보수를 구해보자.
- 주어진 숫자는
42.31
이므로, . - 정수부분은
42
. 2개의 자리로 이루어져 있으므로, 이다. - 소수점 아래
.31
은 2개의 자리로 이루어져 있으므로, 이다. - 10진수 숫자이므로 .
이를 종합하면 다음과 같다.
2진수 예제
2진수 의 1의 보수를 구해보자.
6자리 수이므로 를 계산해주면 된다.
기계적으로는 모든 비트를 뒤집어 주기만 하면 1의 보수를 쉽게 구할 수 있다.
110111
001000
- 모든 비트 반전 (1의 보수)
소수점이 있어도 구하는 방법은 같다.
2진수 의 1의 보수를 구해보자.
기계적으로 구하는 것이 더 쉽다.
1101.11
0010.00
- 모든 비트 반전 (1의 보수)
참고문헌
- [KIM] 디지털논리회로 / 김형근, 손진곤 공저 / 한국방송통신대학교출판문화원 / 3개정판 4쇄 2021년 01월 25일