将十进制数转换为二进制数:
非递归算法:
1 void translate(int n) //将10进制转换为8位的二进制 2 { 3 int a[10]; 4 int i,j; 5 i=0; 6 while(1) 7 { 8 a[i++]=n%2; 9 if(n/2==0) break; 10 n/=2; 11 } 12 i--; 13 for(j=1; j<8-i; j++) 14 { 15 printf("0"); 16 } 17 for(j=i; j>=0; j--) 18 { 19 printf("%d",a[j]); 20 } 21 }
递归算法:
1 void binary(unsigned long n) 2 { 3 int r; 4 r = n%2; 5 if(n >= 2) 6 binary(n / 2); 7 putchar('0' + r); 8 return; 9 }