본문 바로가기

카테고리 없음

8진수의 보수에 대해

보수란 보충수란 뜻으로 자릿수 올림에 필요한 최소한의 수(부족한수)를 말합니다.
즉, 10진수 88은 두자릿수인데, 자릿수 올림(100으로)이 일어나려면 22가 부족하죠.
이 경우 22가 보수가 되는데 정확히 말해서 10의 보수라 합니다.
그리고, 22에서 1을 뺀 수 21을  9의 보수라 합니다.

이해를 돕기위해 수식으로 풀어쓰면,
10진수 1234의 보수는(10000-1234=)8766이 되며, 9의 보수는 1을 뺀 8765가 됩니다.
뒤집어 말하면 1234의 9의 보수는 내자리의 가장큰수 9999에서 1234를 뺀 8765,
                                        10의 보수는 9의 보수에 1을 더한 8766이 됩니다.

8진수에서도 마찬가지 입니다.  (8의)보수는 7의 보수를 구한 후, 거기에 1을 더 합니다.
임의의 수 A의 7의 보수를 구하는 방법은 해당자릿수 만큼 7을 채운숫자에서 A의 절대값을 뺀값이 됩니다.
예를들어,  8진수 5176의 7의 보수는 7777-5176=>2601이 되고
8의 보수는 2601+1=>2602입니다.

여기서 7의 보수를 먼저 구하는 이유는
   8진수 10000-5176보다간 7777-5176을 구한 후 1을 더하는것이 계산하기에 훨씬 쉽기 때문입니다.(7777-5176+1)

이 말을 어렵게 쓰면,
1. 먼저, 해당진수로 변환시킨후
2. 변환된 숫자의 자릿수만큼을  충족수로 채운값에 변환값을 뺀값이 (해당진수-1)의 보수
3. 거기에 1을 더한값이 (해당진수)의 보수이다.

이걸 더 어렵게 쓰면,
"n진수 임의값A의 n의 보수는 n의 (자릿수)승에서 임의값의 절대값을 뺀값이다" 가 되는데  "r의 n(자릿수)승 - |A|"이 됩니다.