十进制与任意进制转化

//十进制转化为k进制

#include<stdio.h>
#include<string.h>
int main()
{
    int n,r,i;
    while(scanf("%d %d",&n,&r)!=EOF)
    {
        if(n<0)
        {
            printf("-");
	    n=-n;
        }
        if(n==0)
	{
            printf("0\n");
	    continue;
	}
        int c=0,a[100];
        while(n!=0)
        {
            a[c++]=n%r;
            n=n/r;
        }
        for(i=c-1;i>=0;i--)
        {
            if(a[i]>=10)
            {
                printf("%c",'A'+a[i]-10);
            }
            else 
            printf("%d",a[i]);
        }
        printf("\n");
    }
    return 0;
}

//m进制转化为十进制

#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<cstring>
char a[10000];
using namespace std;
int main()
{
   int n,m;
   int f=0;
   scanf("%s%d",a,&m);
   for (int i=0;i<strlen(a);i++)
   {
        f*=m;
        if (a[i]=='A'||a[i]=='B'||a[i]=='C'||a[i]=='D'||a[i]=='E'||a[i]=='F')
        {
            f=f+(a[i]-'A'+10);
        }
        else
        {
            f=f+(a[i]-'0');
        }
   }
   printf ("%d",f);
   return 0;
}

百度抄的

发布了9 篇原创文章 · 获赞 0 · 访问量 136

猜你喜欢

转载自blog.csdn.net/qq_45811601/article/details/104254961