10진수를 입력받아 2진수로 변환하는 순서도를 작성하시오 단 1000 이하의 숫자를 입력받는다
이것이 조건인데
왜 마지막에 출력해줄때 배열을 거꾸로 출력해주는 건가요?
숫자 10을 넣어서 코드를 돌렸을때
그냥 배열 0번지부터 순서대로 출력하면 10진수와 2진수가 동일한데 (십진수 10 2진수 0101)
거꾸로 출력하면 2진수 1010이 나와 10진수로 치면 5로 변합니다.
안녕하세요.
2진수 0101은 5이고
2진수 1010은 10입니다.
10진수를 2진수로 변환하는 방법은
10진수를 2로 나눈 나머지를 역으로 출력하는 것입니다.
10진수 9를 2진수로 변환하면
10을 2로 나눈 몫 5, 나머지 0
앞선 작업의 몫인 5를 2로 나눈 몫 2, 나머지 1
앞선 작업의 몫인 2를 2로 나눈 몫 1, 나머지 0
앞선 작업의 몫인 1을 2로 나눈 몫 0, 나머지 1
몫이 0이므로 종료 후
나머지를 역으로 출력
1 0 1 0 = 9
역으로 출력하지 않으면
0 1 0 1 = 5가 산출됩니다.
그러므로 구해진 나머지를 배열의 앞에서 부터 저장해 두었으므로
뒤에서 부터 출력합니다.
다른 방법으로는 200쪽에 수록된 내용으로 배열의 뒤에서부터 저장해서
출력을 배열의 앞에서부터 출력하는 방법도 있습니다.
오늘도 즐거운 하루 되세요.
-
*2018-06-29 09:47:25
안녕하세요.
2진수 0101은 5이고
2진수 1010은 10입니다.
10진수를 2진수로 변환하는 방법은
10진수를 2로 나눈 나머지를 역으로 출력하는 것입니다.
10진수 9를 2진수로 변환하면
10을 2로 나눈 몫 5, 나머지 0
앞선 작업의 몫인 5를 2로 나눈 몫 2, 나머지 1
앞선 작업의 몫인 2를 2로 나눈 몫 1, 나머지 0
앞선 작업의 몫인 1을 2로 나눈 몫 0, 나머지 1
몫이 0이므로 종료 후
나머지를 역으로 출력
1 0 1 0 = 9
역으로 출력하지 않으면
0 1 0 1 = 5가 산출됩니다.
그러므로 구해진 나머지를 배열의 앞에서 부터 저장해 두었으므로
뒤에서 부터 출력합니다.
다른 방법으로는 200쪽에 수록된 내용으로 배열의 뒤에서부터 저장해서
출력을 배열의 앞에서부터 출력하는 방법도 있습니다.
오늘도 즐거운 하루 되세요.