본문 바로가기

Java/본격 Java 퀴즈 기초

[Java] Stack을 이용하여 2진수 만들기

정수를 입력받아서 이진수를 만들어보자.

그러기에는 stack을 이용하는 것이 좋다. 가장먼저 2를 나눈 나머지가 가장 첫자리에 와야한다.

.

.

package Binary_Stack;
import java.util.*;
public class TestBinary {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		Stack<Integer> st = new Stack<Integer>();
		System.out.print("2진수로 만들 숫자를 입력해 주세요.");
		int originNum = sc.nextInt(); // 10진수 입력받기
		int num1 = originNum; // 입력받은 숫자 저장
		String binaryNum = ""; // 이진수 저장 문자열
		
		// 입력받은 숫자가 2로 더 이상 나눠지지 않을 때 까지 나눠서 Stack에 저장한다.
		while(num1 != 0) {
			st.push(num1 % 2);
			num1 /= 2;
			}
		System.out.println("Stack에 쌓은 이진수 데이터 : " + st);
		
		// Stack의 성질을 이용하여 마지막에 입력된 데이터부터 문자열로 나열한다.
		while(!st.isEmpty()) {
			binaryNum += st.pop();
		}
		
		System.out.println(originNum + "의 2진수는 " + binaryNum + "입니다.");	
		}
	}

.

.

728x90
반응형