十进制转二进制的递归实现算法:
1 #include2 void dectobi(int a); 3 4 int main() 5 { 6 int i; 7 printf("please input a decimical number\n"); 8 scanf("%d",&i); 9 printf("the binary number is:");10 dectobi(i);11 return 0;12 }13 void dectobi(int a)14 { 15 int temp=a%2;16 if(0!=a/2)17 dectobi(a/2);18 printf("%d",temp);19 }
实现依据:
十进制转二进制非递归实现:
思想:用数组存储每次取余的结果,a0~a15 (模拟二进制结果用两个字节来保存) 每次存储的时候是最低位存储,所以输出时应倒序输出。
1 #include2 3 int main(void) 4 { 5 int i,m,r,s; 6 int result[16]={ 0};//初始化为0 7 printf("please input a decimical number!\n"); 8 scanf("%d",&i); 9 for(m=0;m<15;m++)10 {11 r=i%2;12 s=i/2;13 i=s;14 result[m]=r;15 }16 for(m=15;m>=0;m--)17 {18 printf("%d",result[m]);19 if(m%4 == 0)20 printf(" ");21 }22 23 24 return 0;25 }