정수를 입력받아서 이진수를 만들어보자.
그러기에는 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
반응형
'Java > 본격 Java 퀴즈 기초' 카테고리의 다른 글
[Java] TreeSet 활용하기 (0) | 2020.07.13 |
---|---|
[Java] HashSet을 이용하여 교집합, 차집합, 합집합 구해보기 (0) | 2020.07.13 |
[Java] 도형의 성질을 이용하여 크기 조절하기(인터페이스) (0) | 2020.07.13 |
[Java] 점과 원 위치 이동하는 절차 인터페이스로 만들기 (0) | 2020.07.13 |
[Java] 도형 그리기 인터페이스 (0) | 2020.07.13 |