[C언어] 재귀 함수 - 10진수 -> 2진수 변환

예제 모음/C/C++2014. 3. 20. 18:00


※요약

재귀함수를 통해 10진수2진수로 변환한다.



※특징

10진수 n을 Dec2Binary함수에 넣으면 2진수로 출력해준다.

int형으로 값을 받으므로 2,147,483,647의 수까지 변환이 되며,

더 큰 수를 변환하고 싶으면 unsigned int나 unsigned __int64로 하면 된다.

unsigned __int64의 경우 18446744073709551615의 수를 2진수로 변환 할 수 있다.



※예제

#include <stdio.h>

void Dec2Binary( unsigned __int64 nNum );

int main( )
{
	unsigned __int64 nNum = 0;

	printf( "-1 입력시 종료 됩니다.\n" );

	while( nNum != -1 )
	{
		printf( "숫자를 입력하세요 : " );
		scanf( "%d", &nNum );

		Dec2Binary( nNum );
		printf( "\n\n" );
	}

	return 0;
}

void Dec2Binary( unsigned __int64 nDecimal )
{
	if( nDecimal < 2 )
	{
		printf( "%I64u", nDecimal );
	}
	else
	{
		Dec2Binary( nDecimal/2 );
		printf( "%I64u", nDecimal%2 );
	}
}


※결과


-unsigned __int64형으로 했을 때 변환할 수 있는 최대의 수


작성자

Posted by 사용자 오뇽

태그

관련 글

댓글 영역

  • 프로필 사진
    UNKNOWN
    2017.01.01 19:23

    -1입력해도 나가지질 않아요..무슨문제인가요?