스크래치 십진수 이진수 변환 프로그램 만들기

컴퓨터는 이진수 0과 1로만 계산을 하는데요. 이걸 십진수를 이진수로 변환하는 프로그램은 만들어 보면 어떨까 생각을 하다가 만들어보게 되었습니다.


먼저 십진수를 이진수 계산하는 방법부터 알아야 계산 알고리즘을 만들 수 있을텐데요. 그럼 먼저 십진수를 이진수로 변환하는 방법부터 알아보고 스크래치로 작성할 알고리즘과 프로그램을 코딩을 해보도록 하겠습니다.




스크래치 십진수 이진수 변환 프로그램 만들기

 십진수를 이진수로 고칠 때에는 2의 값으로 계속해서 나눈 다음 나머지를 아래부터 나열하면 됩니다. 예를 들어서 10의 값을 나눈다고 했을 경우 이진법으로 계산하면 값은 1010입니다.


이제 십진수를 이진수로 변환하는 방법을 알아보았으니 어떻게 프로그램을 만들지 생각해 보겠습니다.


1. 십진수를 입력 받는 코드

2. 입력 받는 십진수를 2의 값으로 나누기를 시도합니다.

3. 2의 값으로 나눈 몫을 리스트에 저장합니다.

4. 나머지의 값을 리스트에 저장합니다.

5. 나머지가 저장된 리스트의 값을 마지막 값부터 불러옵니다.




먼저 변수를 만들어 보겠습니다. "데이터"를 클릭하여 2개의 변수를 만들어 줍니다.


그리고 "리스트만들기"를 클릭하여 "나머지저장리스트"와 "몫리스트" 2개의 저장리스트를 만들어 줍니다.


프로그래밍하기

처음 부분은 변환할 숫자를 입력 받는 코드를 만들어 줍니다. 2번 변수를 값은 비워둡니다. 3번 입력 받은 숫자를 십진수 변수에 저장해줍니다.


아래 부분은 십진수를 이진수로 만들어 주는 식을 코드화 한 것입니다. 1번은 십진수를 2로 나눠 1보다 작을때가지 반복하게 됩니다.


2번은 십진수를 2로 나눈 다음 나머지를 "나머지 저장리스트"에 넣어 줍니다. 예를 들면 십진수 10/2로 나눈 다음 나머지를 "0"을 나머지저장리스트에 값을 넣어 줍니다.


3번 이번에는 10/2로 나누면 5가 됩니다. 소수점은 필요가 없으므로 0.1를 빼서 "4.9"로 만들어 준 후 반올림하여 십진수 변수에 5의 값이 저장이 됩니다. 여기서 "-0.1"과 반올림을  해준 이유는 소수점이 나왔을 경우 소수점 이하의 값을 버리기 위해서 작업을 해준 것입니다.


4번 변경된 십진수 값을 "몫리스트"에 저장해 줍니다.


아래 그림은 숫자 10을 이진수로 변환하였을 때 몫리스트와 나머지 저장리스트에 들어가게 되는 값입니다. 이제 이 값을 출력해줘야 하는데요. "몫리스트"에 있는 3번 값과 나머지 리스트에 있는 3번, 2번, 1번 값이 순서대로 출력 되어야 합니다. 


결합하기 블록을 이용하여 마지막 몫의 값을 "이진수"변수에 넣어줍니다.


이제 나머지저장리스트에 있는 값을 마지막 값부터 "이진수" 변수에 차례대로 결합시켜 줍니다.


그리고 다음 계산을 위하여 리스트에 저장되어 있는 값들을 삭제 블록을 이용하여 모두 삭제해 줍니다. 마지막으로 2초 동안 계산된 값을 말하도록 블록을 만들어 줍니다.




실행결과

 


지금까지 스크래치를 이용하여 십진수를 이진수로 변환하는 프로그램을 만들어 보았습니다. 다른 것보다 수학이 들어가서 조금 어려울 수 있는데요. 실력을 키운다고 생각하고 천천히 만들어 보시기 바랍니다.

댓글(6)

  • 2018.11.05 04:55 신고

    예전에 정보처리 기능사 자격증 시험을 준비했을때 십진수 이진수로 바꾸는 일을 했었던것 같습니다^^ ‘스크래치 십진수 이진수 변환 프로그램 만들기’ 내용 잘 읽고 갑니다. 희망찬 한 주 보내시길 바래요

    • 2018.11.07 20:23 신고

      맞아여 정보처리 시험에도 나왔던 것 같네요. 기사 자격증 준비하면서 다시 풀어봤던 기억이 새록새록 나네요 ^^

  • 2018.11.05 16:51 신고

    어려운데도 재밌는거 같습니다.^^

  • 2018.11.06 12:38 신고

    십진수를 이진법으로 변화시켜 여러 응용도 가능하겠어요.
    화면 속 귀여운 고양이가 똑똑하네요.

    • 2018.11.07 20:24 신고

      ^^ 맞아요 이진법만 아니라 16진법도 가능하니까요~

      그런데 포스팅은 했지만 아무도 안찾아볼것 같아요~

Designed by JB FACTORY