10진수를 2진수로 변환예제

신동원·2021년 10월 27일
0

C

목록 보기
10/10
#include<stdio.h>

int my_func(int n);
void my_func1(int n);

int main()
{
int n = 10;
printf("%d\n", my_func(n));
my_func1(n);
return 0;
}

int my_func(int n) {
int b,c=0,d=1;
while (n != 0) {
	b = n % 2;
	n = n / 2;		
	c += b * d;
	d *= 10;
}	
return c;
}

void my_func1(int n) {
int a = n / 2;
int b = n % 2;
if (a > 0) my_func1(a);
printf("%d", b);
}

my_func 함수는 while문으로 변환하는 함수이고
my_func1 함수는 recursion을 활용하여 변환하는 함수이다.

recursion을 활용할 때 같은 이름의 변수 a와 b이지만 각각 다른 메모리에 저장되어있는 다른 변수라른 점을 이용하여 재귀호출을 진행하고 다시 되돌아가면서 저장되어있던 나머지값 b를 순차대로 불러온다.

profile
오늘보다 내일 더 나은 사람이 되기 위해 노력하자

0개의 댓글