進製轉換是c語言學習過程中經常會遇到的問題,我們可以通過建立乙個陣列來儲存短除法每次產生的餘數,當商等於0的時候,就不用再繼續做除法了,此時我們只需要把陣列中儲存的餘數從後往前依次列印,就能得到進製轉換的最終結果。
我們也可以簡單的運用遞迴來實現,遞迴使得函式多次自己呼叫自己,當累積呼叫到商等於0的時候,不再進行遞迴呼叫,開始執行列印語句,當前層遞迴列印語句執行完以後返回到上一層,執行上一層的列印語句,直到把累積呼叫的遞迴層數返回完,從而實現了餘數的逆向列印,以此得到了我們想要的結果。
後面有2020.06.04更新內容
遞迴**如下:
#include
void
sysconvert
(int num,
int n)
//十進位制num轉為n進製
2020.6.4更新
當轉換進製大於10的時候,上述**不能用abcdef來正確表示。
非遞迴實現:
#include
#include
using
namespace std;
intmain()
while
(n!=0)
for(
int i=v.
size()
-1;i>=
0;i--
)//輸出轉換後的序列
cout<
}return0;
}
長風破浪會有時,直掛雲帆濟滄海! 十進位制數轉N進製c 實現
編寫乙個演算法,將乙個非負的十進位制整數 n轉換為另乙個基數為b的 b進製整數。include include using namespace std 所要的十進位制轉 b進製的函式 void shift int b,int before char b num b if b 10 定義好大於 10的...
十進位制數轉N進製c 實現
編寫乙個演算法,將乙個非負的十進位制整數 n轉換為另乙個基數為b的 b進製整數。include include using namespace std 所要的十進位制轉 b進製的函式 void shift int b,int before char b num b if b 10 定義好大於 10的...
C 實現10進製轉2進製
這幾天在複習計算機原理,看到二進位制忽然想到二進位制轉10進製的公式,然後轉念一想10進製轉二進位制的公式好像沒印象,那索性自己寫出來。結果學渣的我發現,並不能寫出來!什麼數列,對數,xx函式忘得一乾二淨,而且需要有需要判斷的地方,於是崩潰了,以前代數題並沒寫過條件啊 索性用c 搞出來 雖然在c 裡...