1. 程式人生 > >遞迴實現十進位制轉二進位制

遞迴實現十進位制轉二進位制

#include<stdio.h>
#include<stdlib.h>
//輸入一個十進位制,自己寫一個函式轉換為二進位制
//10進位制轉2進位制:方法是除以2取餘,逆序排列 
//如果想轉換為 8進位制,則把程式碼中的2改為8就OK 
//下面這個是遞迴!!! 
void change2(int num)//如果輸入num為10 
{
	if(num==0)
	{
		return ;	
	}
	else
	{
		/* 不能這樣寫 
		printf("%d",num%2);結果是0101  從上往下 ? 在遞迴呼叫之上就是順序輸出 
		change2(num/2);
		*/ 
		change2(num/2); //先反覆呼叫自身後一次返回 
		printf("%d",num%2);//結果是1010 從下往上? 在遞迴呼叫之下就是逆序輸出! 
	}	
} 
int main()
{
	int num;
	printf("請輸入一個十進位制數,程式將轉換為2進位制\n");
	scanf("%d",&num);
	
	printf("十進位制%d轉換為二進位制為:",num);
	change2(num);//呼叫 
	return 0;
}