코딩 02. 자연수를 이진수로 변경하기

yuriyaam·2021년 1월 6일
0

로직 필요없이, 함수 하나로 변경할 수 있지만 .. (아래 참고)
자연수를 이진수로 변경하는 로직을 작성해 보았다.

> 먼저, 십진수를 이진수로 바꾸는 방법에 대해 알아볼게요.


이미지 출처는 여기!
그림과 같이 십진수를 2로 나누면서 나머지 값을 거꾸로 읽으면 됩니당 ^_^
그리고 몫이 0 이하가 되면 멈추면 되요!

☝ 자연수를 이진수로 변경하기

int num = 8;	// 자연수
int i = 0;	// 나머지값
String result = "";

while(true) {
	i = num%2;
	result = i + result;
	num = num/2;
			
	if(num <= 0) 
	break;
}

System.out.println("결과는 " + result);

이번엔 while문을 사용해 보았습니다. while 조건절에 true를 주면 항상 while문을 타게 되어있습니다. 반드시 break;을 넣어줘야해요!

1) 결과(result)에 나머지 값 넣기

자연수(num)을 2로 나누어 나머지 값을 변수 i에 담습니다. (i = 나머지)
그리고 result에 나머지를 넣어줄건데요, 이때 변수 i의 값을 result의 뒷부분이 아닌 앞부분에 넣어주는게 키포인트입니다.
이진수는 나머지를 뒤에서부터 읽어오기 때문에 맨처음에 나온 나머지 값이 맨 뒷자리에 있게 되기 때문입니다.
그리고 2로 나눈 몫을 자연수(num)에 넣어 다시 2로 나누도록 반복..

2) break;은 언제?

중요한 break;은 자연수(num)이 0보다 같거나 작아지면 while문을 빠져나오면 됩니당 :-D


✌ 함수를 사용하여 이진수로 변경하기

int num = 8;	// 자연수
String result = Integer.toBinaryString(num);
System.out.println("결과는 " + result);

toBinaryString()함수를 사용하면 아주 간단하게 변환이 가능해요 ^^ㅎ

0개의 댓글