进制转化的函数

/* -- 进制转换 -- */
#include<bits/stdc++.h>
using namespace std;
int wei[100005];                // 用于储存转化后的每一位 
int ten_to_n(int x,int n);        // 把十进制的下x转化为n进制下的数 
int n_to_ten(int x,int n);         // 把n进制下的x转化为十进制下的数 
int cnt;    //计数器 
int main(void)
{
    int x,n;
    cin>>x>>n;
    cout<<ten_to_n(x,n)<<endl;
    cnt=0;                        //把cnt清零,否则影响下一个函数 
    memset(wei,0,sizeof(wei));    //把wei数组清零,否则影响下一个函数 
    cout<<n_to_ten(x,n);
    
    return 0;
}
int ten_to_n(int x,int n)
{
    int ans=0;
    while(x!=0)
    {
        wei[++cnt]=x%n;//进制转换的法则 
        x=x/n;
    }
    for(int i=cnt;i>=1;i--)
    {
        ans+=wei[i]*pow(10,i-1);
    }
    return ans;
}//该函数精度较低,如果需要高精度则诸位输出即可,不需要进行求和的复杂操作 
int n_to_ten(int x,int n)
{
    int ans=0;
    while(x!=0)
    {
        wei[++cnt]=x%10;
        x=x/10;
    }
    for(int i=cnt;i>=1;i--)
    {
        ans+=wei[i]*pow(n,i-1);
    }
    return ans;
}

 

posted @ 2022-11-12 13:53  血赤叶红  阅读(61)  评论(0)    收藏  举报