首页 > 代码库 > 任意进制转换

任意进制转换

技术分享

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
  int n,m,k=0,a,x,c,i,b[100],y;
  char s[36]={‘0‘,‘1‘,‘2‘,‘3‘,‘4‘,‘5‘,‘6‘,‘7‘,‘8‘,‘9‘,‘A‘,‘B‘,‘C‘,‘D‘,‘E‘,‘F‘,‘G‘,‘H‘,‘I‘,‘J‘,‘K‘,‘L‘,‘M‘,‘N‘,‘O‘,‘P‘,‘Q‘,‘R‘,‘S‘,‘T‘
,‘U‘,‘V‘,‘W‘,‘X‘,‘Y‘,‘Z‘};
while(scanf("%d %d",&n,&m)==2)
{
  printf("Case %d: ",++k);
  a=n;
  x=0;
  c=1;
  while(a!=0)
  {
    b[x++]=a%m;
    a=a/m;
  }
  for(i=x-1;i>=0;i--)
  {
    y=b[i];
    printf("%c",s[y]);
  }
  printf("\n");
}
return 0;
 
}

 要转换成几进制则除几,把n的每位都分离出来,得到的每个数是几则对应36进制中的第几个位置

任意进制转换