遞迴-進位制轉換器(十六進位制以內)

不被看好的青春叫成長發表於2015-03-22

程式碼如下:

#include <iostream>
using namespace std;

const char DIGIT[17]="0123456789ABCDEF";
void printInt(int ,int );
int main()
{
    int num,base;

    cout<<"請輸入一個整型數:";
    cin>>num;
    cout<<"請輸入轉換的數制:";
    while (cin>>base&&base<=16)
    {
    printInt(num,base);
    cout<<endl;
    cout<<"請輸入轉換的數制:";
    }
    cout<<endl;

    return 0;
}

void printInt(int num,int base)
{
    if (num<base)
        cout<<DIGIT[num];
    else
    {
        printInt(num/base,base);
        cout<<DIGIT[num%base];
    }
}


執行結果:

其實不只可以轉換成16進位制以下的,關鍵是DIGIT[17]="0123456789ABCDEF"給定的只有這16個。

在輔導書上看到這個,於是試了下,不錯的感覺。

相關文章