엊그제 학생들에게 2의 보수를 설명을 해 주면서 10의 보수의 개념에 대해 먼저 설명을 해주었답니다.
보수란 보충하는 수의 개념으로 8의 10의 보수는 10을 만들기 위한 2이고
8의 9의 보수는 9를 만들기 위해서 보충하는 1의 수라고 말해 주었답니다.
그리고 나서 2의 보수는 1의 보수에 1을 더한 값이라는 개념에 대해 설명을 해 주었습니다.
왜냐하면 2의 보수가 되려면 1과 2차이가 1이 차이가 나기 때문에 1을 더해 주어야 하기 때문이죠...
그러면서 88의 10의 보수는 100을 만들기 위한 12인데 이것을 100 - 88 = 12 라고 계산 하는 것 보다
9의 보수 개념으로 각각의 자리에서 9-8 = 1, 9 - 8 = 1 이기 때문에 11 + 1 = 12 가 되는 방법에 대해 설명을 해 주면서
2의 보수를 만들기 위해서 각각의 자리에서 1의 보수 개념을 취한 뒤에 + 1을 해 주면 된다고 설명을 했습니다.
따라서 010 이라는 2진수 숫자가 있으면 1의 보수를 취하면 101 이 되고 2의 보수는 110 이 된다고 설명을 해 주었는데요.
우리 학생중에 정말 똑똑한 학생이 갑자기 이해가 안된다고 하네요.
010 은 10진수 2의 값인데 1의 보수를 취하면 101(5) 가 되고 2의 보수를 취하면 110(6) 이 되고 3의 보수를 취하면 2의 보수에 1을 더해서 111(7)이 되는데 그 이유를 모르겠다는 거예요.
저도 10진수로 변환해서 생각해 본적이 없어서 갑자기 헷갈리기 시작 하더라구요...
그래서 확인해서 알려 준다고 하고 곰곰히 생각해 보니 010(2) 값의 1의 보수를 취한 후 1을 더하면 2의 보수가 되지만...
이렇게 만들어진 2의 보수에 1을 더한다고 해서 3의 보수가 되는것이 아니라는 것입니다.
그리고 이진수 010(2)의 2의 보수는 101(1의 보수) + 1 = 110(6) 의 개념 보다는 01(1의 보수) + 1 = 10(2) 의 개념이 맞는 것이고
이진수 010(2)의 3의 보수는 2의 보수 10(2) + 1 = 3 이 3의 보수가 아닌
3진수 2 의 값을 2의 보수를 취하면 2-2 = 0 이 됩니다.
따라서 (2의 보수) 0 + 1 = 1 이 3의 보수가 됩니다.
따라서 각 진수별 보수를 취할때 1의 보수를 취한 값에 1을 더한 값이 2의 보수인데 2의 보수의 개념은 2,4,8,16 이 되기 위한 개념이고 3의 보수의 개념은 3,9,27,81 이 되기 위한 개념입니다.
따라서 2의 보수의 값을 구한 것에 +1을 한것이 3의 보수값이 되는 것이 아닙니다.
가령 7의 2의 보수는 1이 되지만 여기에 +1을 하면 9가 되어 3의 보수가 되는 경우도 있지만
15의 2의 보수는 16을 만들기 위한 1이 되지만 여기에 +1을 한다고 해서 27이 되는 것은 아닙니다.
따라서 15의 값을 이진수로 바꾸면 1111(15)의 값이므로 이것의 2의 보수는 각각의 자리에서 1의 보수 개념을 취해서 0000(0) 이 되어 + 1을 한것이 2의 보수가 되고
15의 값을 3진수로 바꾸면 120(15)의 값이므로 이것의 각자리수의 2의 보수를 취하면 102(11) 이 됩니다 여기에 +1을 하면 110(12) 가 되는데 이것이 3의 보수가 되는 것입니다.
따라서 2의 보수에 + 1을 한것이 3의 보수가 되는 것이 아니고 3의 보수를 취할때는 각 자리수를 3진수로 만들고 이것을 2의 보수를 취한 후에 +1을 해 주게 되면 이것이 3의 보수가 되는 개념입니다.
저도 그냥 1의 보수 2의 보수의 개념만 생각하다가...
갑자기 학생의 질문에 많은 고민을 해 보게 된 계기가 되었는데요.
혹시라도 이 학생과 같은 고민을 했던 분들에게 도움이 될까 해서 포스팅을 해 보게 되었습니다.
'강의자료 > 정보영재' 카테고리의 다른 글
행렬의 곱을 이용한 피보나치 수열 구하기 (437) | 2019.10.15 |
---|---|
행렬식의 기하학적 의미 - 벡터가 이루고 있는 평행사변형의 넓이 (10) | 2019.09.27 |
CodeBlock 환경설정 초기화 방법 (7) | 2019.09.18 |
[컴퓨팅 사고력]하노이탑 문제(Hanoi Tower Problem) 이해하기 (5) | 2019.09.03 |
비둘기집 원리에 대해 알아 봅니다. (11) | 2019.08.12 |