/*
問題:數(shù)制轉換,逆序輸出
思路:求余--輪除--求余,分解后保存在數(shù)組中。
      數(shù)組逆序輸出為,所得。
*/

#include
<iostream>
#include
<cstring>
using namespace std;
int main()
{
    
int i,radix;
    
long n;
    
char a[32];
    
void trans(char *p,long m,int base);
    cout
<<"Input radix(2,8,16):";
    cin
>>radix;
    cout
<<"\nInput a positive number:";
    cin
>>n;
    trans(a,n,radix);
    
//正序輸出:比如1245644
    for(i=strlen(a)-1;i>=0;i--) cout<<a[i];
    cout
<<endl;
    
//逆序輸出:比如4465421
    for(i=0;i<=strlen(a)-1;i++) cout<<a[i];
    cout
<<endl;
    
return 0;
}

//數(shù)制轉換函數(shù)
void trans(char *p,long m,int base)
{
    
int r;
    
while(m>0)
    
{
        r
=m%base;//求余
        if(r<10
            
*p=r+48;//code轉換為char
        else 
            
*p=r+55;//code轉換為char
        m/=base;//輪除
        p++;
    }

    
*p=0;
}