用遞歸的方式實現各種進制間的轉換

//各種進制之間相互轉換
//‘d’ 轉換爲十進制
//‘x’ 轉換爲十六進制
//‘o’ 轉換爲八進制
//‘b’ 轉換爲二進制
// b y :foxhack
//email : [email protected]
//QQ:278563291


#include <stdio.h>

void prind_d(int n,char c)
{
  switch(c)
  {
    case 'd':
      {
      if (n<0)
      {
        putchar('-');
        n=-n;
      }
      if(n/10)
        prind_d(n/10,'d');
      putchar(n%10+'0');
      break;
      }
                                 case 'o':
      {
      if(n/8)
        prind_d(n/8,'o');
      putchar(n%8+'0');
      break;
      }
                                 case 'x':
      {
                    char ch[]="0123456789ABCDEF";
      if(n/16)
        prind_d(n/16,'x');
      putchar(ch[n%16]);
      break;
      }
                                 case 'b':
      {
      if(n/2)
        prind_d(n/2,'b');
      putchar(n%2+'0');
      break;
      }

  }
}


int main(int argc ,char *argv[])
{
                int a;
  char c;
  puts("please input num:for example 16,d");
                scanf("%d,%c",&a,&c);
  prind_d(a,c);
  putchar('\n');
  return 0;

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章