JAVA 프로그래밍

문제

8부터 15사이의 10진수를 입력받아 2진수로 변환하여 출력하는 문제입니다 이를 해결하는 다음 프로그램을 해석하세요 
8부터 15사이의 10진수를 입력하세요: 11
10진수 11은 2진수 1011입니다. 

8부터 15사이의 10진수를 입력하세요: 10
10진수 10은 2진수 1010입니다. 

8부터 15사이의 10진수를 입력하세요: 8
10진수 8은 2진수 1000입니다. 

알고리즘

프로그램 시작 
   8부터 15사이의 10진수를 입력
   10진수에서 2진수의 각 자리수 2^3, 2^2, 2^1, 2^0을 순서대로 추출
      2진수 1000 = 2^3 = 8의 자리수
      2진수 100 = 2^2 = 4의 자리수
      2진수 10 = 2^1 = 2의 자리수
      2진수 1 = 2^0 = 1의 자리수
   2진수 각 자리수의 값을 바탕으로 10진수를 2진수로 변환
   10진수를 2진수로 변환한 결과를 출력
프로그램 종료

프로그램 코드

	// 파일명 : ./Chapter03/DecimalToBinary.java
	import java.util.Scanner;
		 
	public class DecimalToBinary
	{
		// 프로그램 시작 
1		public static void main( String[] args ) {
			Scanner scan = new Scanner( System.in );
			// 8부터 15사이의 10진수를 입력 
			System.out.print( "8부터 15사이의 10진수를 입력하세요: " );
2			int decimal = scan.nextInt();
		 
			// 10진수에서 2진수의 각 자리수 2^3, 2^2, 2^1, 2^0을 순서대로 추출 
			// 2진수 1000 = 2^3 = 8의 자리수 
3			int binary1000 = decimal / 8;
		 
			// 2진수 100 = 2^2 = 4의 자리수 
4			int binary100 = ( decimal % 8 ) / 4;
		 
			// 2진수 10 = 2^1 = 2의 자리수 
5			int binary10 = ( decimal % 4 ) / 2;
		 
			// 2진수 1 = 2^0 = 1의 자리수 
6			int binary1 = decimal % 2;
		 
			// 2진수 각 자리수의 값을 바탕으로 10진수를 2진수로 변환 
7			int binary = binary1000 * 1000 + binary100 * 100 + binary10 * 10 + binary1;
		 
			// 10진수를 2진수로 변환한 결과를 출력 
8			System.out.print( "10진수 " + decimal + "은 2진수 " + binary + "입니다." );
			scan.close();
		// 프로그램 종료 
9		}
	}

실행 순서

 
 					※ 실행순서 및 메모리상태는 A키(이전) 및 D키(다음)를 눌러도 확인할 수 있습니다