十进制转二进制

 

十进制转二进制的递归实现算法:

    

 1 #include <stdio.h>
 2 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 #include <stdio.h>
 2 
 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 }

 

 

 

   

posted @ 2014-05-01 15:47  尾巴草  阅读(492)  评论(0编辑  收藏  举报