※요약
재귀함수를 통해 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형으로 했을 때 변환할 수 있는 최대의 수
'예제 모음 > C/C++' 카테고리의 다른 글
| [C++11] 중복없는 로또 프로그램 (6) | 2015.11.27 |
|---|---|
| [C++11] 원 안에만 점 찍기 (0) | 2014.09.02 |
| [C언어] rand 함수를 이용한 로또 프로그램 (1) | 2014.04.08 |
| [C언어] 소수점 특정 자릿수 반올림하기 - ROUND 함수 (0) | 2014.03.14 |
| [C언어] 어떤 수 x가 2의 n승인지 판별하는 함수 (0) | 2014.03.13 |
| [C언어] 재귀 함수 - 이진 탐색 (Binary Search) (0) | 2013.12.05 |
| [C언어] 재귀 함수 - 거듭제곱 (power) (3) | 2013.12.05 |