코북
Keep going
코북
전체 방문자
오늘
어제
  • 분류 전체보기 (113)
    • Computer Science (20)
      • 인터넷 (10)
      • 운영체제 및 일반지식 (4)
      • 공통 요구사항 (4)
      • WAS (2)
    • DataBase (17)
    • JavaScript (22)
    • Spring (15)
    • Java (4)
    • ASP.NET (5)
    • C# (6)
    • 알고리즘 (8)
    • HTML5 + CSS (5)
    • Git & GitHub (5)
    • Machine Learning (5)
    • 좋은 글 공유 (1)

최근 글

최근 댓글

티스토리

hELLO · Designed By 정상우.
코북

Keep going

[Java] 10진수 2진수로 변환
알고리즘

[Java] 10진수 2진수로 변환

2022. 2. 8. 15:10

 

 안녕하세요 코북입니다. 오늘은 10진수를 2진수로 변환하는 코드를 작성해봤습니다. 이 문제를 풀려면 십진법 수를 이진법 수로 나타내는 방법에 대해 알아야 하는데요. 십진법 수를 몫이 0이 될 때까지 2로 나누어서 생긴 나머지를 역순으로 적으면 됩니다. 

 

public class Java17 {
	public static void main(String[] agrs) {
		
		Scanner sc = new Scanner(System.in);
		System.out.print("숫자입력 >> ");
		int a = sc.nextInt();
		
		ArrayList<Integer> list = new ArrayList<Integer>(); 
		
		// 10진법으로 나타낸 수를 2진법으로 타나내려면
		// 몫이 0이 될 때까지 계속 2로 나누어서 생긴 나머지를 역순으로 적으면 된다
		while(true)
		{
			if(a%2==1) // 나머지가 1인 경우
			{
				list.add(1);
			}
			else if (a%2==0) // 나머지가 0인 경우
			{
				list.add(0); 
			}
			
			a /= 2;

			if(a==0) {
				break;
			}
		}
		
		// 역순으로 출력
		for(int i=0; i<list.size(); i++)
		{
			System.out.print(list.get(list.size()-i-1));
		}
		
	}
}

 

 이해를 돕기 위한 그림과 코드입니다. 몇 번 나누어야 하는지 정확하지 않기 때문에 for문이 아닌 while문을 사용하였습니다. 역순으로 출력하기 위해 값을 저장할 필요가 있다고 생각이 들어 ArrayList를 사용하여 값을 저장한 후 역순으로 출력하였습니다.

저작자표시 비영리 동일조건 (새창열림)

'알고리즘' 카테고리의 다른 글

[Java] 버블정렬(Bubble sort)  (0) 2022.02.10
[Java] 가까운 거리 찾기 (1차원)  (0) 2022.02.08
[Java]수열 n번째 항까지 출력  (0) 2022.02.01
[Java]소인수분해  (0) 2022.01.25
[Java]팩토리얼 - 재귀 함수  (0) 2022.01.24
    '알고리즘' 카테고리의 다른 글
    • [Java] 버블정렬(Bubble sort)
    • [Java] 가까운 거리 찾기 (1차원)
    • [Java]수열 n번째 항까지 출력
    • [Java]소인수분해
    코북
    코북

    티스토리툴바