딸에게 심볼이 있는 정수를 간단명료하게 가르치는 극본

9944 단어 컴퓨터 과학
쓰기이 보도가 두 달이 지났고 딸도 생후 반년을 맞았다.
읽은 주변 사람들로부터 재밌는 호평을 받아서 잘 썼다고 생각했는데 AdventCalendar 2017 Qita 개발진이 선택한 최고의 메시지로!

솔직히 기쁨보다 놀라움이 더 크다.
기술적인 도전이 아니라 선물 기획도 발표를 해보도록 하겠습니다.
그러나 일부 내용은 처음부터 끝까지 썼고 설명은 일부 오해를 불러일으킨다.
그래서 지난번에 설명한 적은 부호가 달린 정수에 대해 딸과 대화를 해봤습니다.
(사실 나도 부동점수의 정밀도로 인한 오차를 쓰고 싶지만, 그래도 기회는 있다.)
저번부터 시작하는 후속 내용이기 때문에 미리 읽어보면 이해하기 쉽다.
그나저나 "너 정말 집에서 이렇게 얘기하는 거야?"몇 사람이 나에게 이것이 사실이냐고 물었다.
"재작년에 말씀해 주신 기호는 정수가 이상합니다."
"왜 나일아. 0과 1로 0보다 작은 숫자를 표시하는 거야?"
"그런 짓을 하면 아무도 얻을 수 없어! 2진법으로 변환하는 도구로 마이너스로 변환하면 이상해! 어쨌든 봐야지!"

"0을 표현하려면 모든 OFF, 즉 모든 0이 0인 것이다."
"그래. 1이면 맨 오른쪽 자리만 ON, 1이야."
"가장 왼쪽 자릿수가 플러스인지 마이너스인지를 표시한다고 한다. 그러니까 억1을 100000001로 정하면 -1이 되는 것 같은데..."

"뜻밖에도 -127! -1 모두 ON, 1111111! 뜬금없다!"
"실제로 줄인 경우에는 원래 수량의 2를 채워야 합니다."
"내가 무슨 말을 하는 거야. 자세히 듣고 싶어!"
"우선 1과 -1을 2진법으로 비교합시다."

"비교해 봤어요. ON/OFF는 거의 반대예요."
"이런 상태는 2의 보충이다."
"이 두 가지 보너스는 도대체 무엇입니까?"
"각 자릿수의 ON/OFF는 반대로 맨 오른쪽 자릿수에 1을 더한 수량을 2의 보너스라고 한다."
"자꾸 이해하기 어려울 것 같은데...그러니까 이 숫자를 합치면 자릿수가 하나 더 늘어나지 않을까요?"
"확실히 그게 더 이해하기 쉬워! 사실은 이런 느낌이 요구되는 거야!"

"확실히-1 전부 ON이라서 있어요!"
"나짱이 말한 걸 보자. 플러스와 마이너스를 더하면 자릿수가 하나 늘어나겠지."

"그래! 빼려면 각 자릿수 반전 후 1을 더하면 알겠지만 더하기에 한 자릿수가 늘어난 것 같아~"
"나짱 느낌 좋은데! 이렇게 0과 1로 0보다 작은 숫자를 표시할 수 있어요!"
"그런데 왜일까? 왜 이런 식으로 마이너스를 표현하는 걸까? 맨 왼쪽 자리만 거꾸로 하면 마이너스가 되는 거겠지?"
"그 방법을 적용하면 계산이 간단해진다. 이걸 다 넣으면 계산이 된다니."
"마이너스가 있어도 덧셈으로 계산할 수 있다는 말인가? 마이너스가 있으면 뺄셈이 안 된다! 이런 느낌의 결과는 뺄셈이다."
$(5) + (-3) = 5 - 3 = 2 ∴ 101 - 11 = 10$
"확실히 감법으로 계산할 수 있지만 감법이 2의 보수라면 덧셈만 하면 된다."
"아까부터 똑같은 말을 하고 있었어요. 빨리 계산해 보세요!"
"그럼 5-3을 더하자. 2진법이면 이런 느낌이야."

"합치면 자릿수가 늘어 9자리로 바뀌었어요. 그런데 늘어난 자릿수 밖에는 확실히 2! 맨 왼쪽 자릿수는 어떡해요?"
"버릴 거예요. 기본적으로 8자리수이거나 이 배수로 숫자를 표시해요."
"자꾸 아쉽다. 감점 계산도 해보자."

"역시 있다! 이 정도면 덧셈만으로도 충분해!"
"그나저나 플러스 15[00001111]와 마이너스 15(11110001)를 더하면 맨 왼쪽 자릿수를 버리면 어떨까요?"
"1억 0이 되고 맨 왼쪽 1을 버리면 전부 0이 된다. 15와 -15를 더하면 0이 되는 게 당연하다. 아! 마이너스가 이 수에 합치면 자릿수가 하나 더 늘어난 숫자와 연결된 것 같다!?"
"맞아! 2의 보너스로 마이너스를 표현하는 것은 덧셈을 최대한 줄이기 위해서야. 나나잼은 감각적으로 알고 있어."
"감법기도 전가법기를 사용하는 회로야. 근본적으로 똑같아."
"응. 그걸 알면 알지. 난 아버지 회로를 잘 못해."
어때요?
딸이 커서 언제 인터넷에서 이 기사를 보면 어떻게 생각할까
내 마음대로 등장시키지 마!욕 먹을 수도 있지만 딸이 읽어도 알기 쉽고 재밌다고 했으면 좋겠어요.
그리고 실제 2진법의 음수가 2의 보수를 사용하는 이유는 기사를 써봐야 알 수 있다.
자신의 학습이 될 수 있어서 정말 다행입니다.
이번에는 지난번에 설명한 적은 부동점수 정밀도로 인한 오차를 쓰려고 합니다.
조금은 여유가 있을 수 있지만 그때는 다시 읽어주셨으면 좋겠습니다.

좋은 웹페이지 즐겨찾기