C++實現十進位制轉換為任意進位制
阿新 • • 發佈:2019-02-11
- 十進位制數在C++中用什麼表示?
- 一個十進位制數,在程式中用什麼方式轉換為其他進位制,和在數學中的思路一樣嗎??
- 輸出的結果用什麼表示比較方便?
- 下面的程式中digit思考為什麼要用靜態變數?
#include <iostream> #include <stack> using namespace std; //十進位制轉任意進位制:遞迴實現 void convert(stack<char>& S, __int64 n, int base)//得到一位 { static char digit[] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' };//新進位制下的數位 if (n > 0)//直到n->0 { S.push(digit[n%base]);//存入 convert(S, n / base, base);//第二個引數十進位制數更新,通過遞迴得到所有更高位 } }//S逆序輸出 //迭代實現 void convertIteration(stack<char>& S, __int64 n, int base) { static char digit[] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' };//新進位制下的數位 while (n > 0) { int remainder = int(n%base); S.push(digit[remainder]); n /= base; } }