m进制转n进制

出处: http://www.cnblogs.com/pkuoliver/archive/2010/10/27/Convert-m-number-to-n-number.html

C语言版:

#include <stdio.h>

void m2n(int m, char* mNum, int n, char* nNum)
{
  int i=0;
  char c, *p = nNum;

  while(*mNum!='\0')
    i = i*m + *mNum++ - '0';

  while(i)
  {
    *p++ = i%n + '0';
    i /= n;
  }
  *p-- = '\0';

  while(p > nNum)
  {
    c = *p;
    *p-- = *nNum;
    *nNum++ = c;
  }
}

int main()
{
  char *mNum = "20";
  char result[512];
  char *nNum = result;
  m2n(8, mNum, 16, nNum);
  printf("%s", result);
  return 0;
}
posted @ 2013-02-20 17:13  wouldguan  阅读(280)  评论(0编辑  收藏  举报