[Algorithm] 입력받은 10진수를 2진수로 변환하기(진법변환)

입력 받은 10진수를 2진수로 변환하기

10진수를 2진수로 변환하려면 10진수를 2로 나누어 몫 과 나머지를 구한 후 나머지는 출력할 배열에 저장하고 몫은 또 2로나누어 나머지를 구하여 출력할 배열에 저장하는 과정을 몫이 0이 될때까지 무한반복 후 몫이 0이되었을경우 저장한 출력배열을 거꾸로 출력시키면 됩니다.

 

풀이과정

 

C언어 / C++ 코드

#include<stdio.h>

main()
{
	int num, num2, b, mok, nmg, i;
	int a[10];
	
	scanf("%d",&num);
	num2 = num;
	b = -1;
	
	do{
		b++;
		mok = num/2;
		nmg = num-mok*2;
		a[b] = nmg;
		num = mok;
 	}while(mok!=0);
 	printf("%d를 2진수로 변환한 값 = ",num2);
 	for(i=b;i>=0;i--){
 		printf("[%d]",a[i]);
	 }
}

결과

 

비트 연산을 활용하여 좀 더 빠르게 할 수 있는 방법도 있습니다. 아래글을 참고해주세요.

[C언어] 10진수를 2진수로 출력하기 (비트연산 활용)

 

댓글

Designed by JB FACTORY