對於十進位制轉化為任意進製數的簡單演算法分析
基本思路:
對於十進位制轉任意進製,通常都是通過取餘逆序排列法獲得結果,舉個簡單例子10進製數1024
轉2進製:
1024/2=512 餘->0
512/2=256 餘->0
256/2=128 餘->0
128/2=64 餘->0
64/2=32 餘->0
32/2=16 餘->0
16/2=8 餘->0
8/2=4 餘->0
4/2=2 餘->0
2/2=1 餘->0
1/2=0 餘->1
然後逆序排列得10000000000則為1024二進位制結果。不難發現,對於任意進製的轉換來說,只是
除數變化成需轉換進製數而已,基本思路相同,而且對於求解過程流程清晰即:相除然後取餘
,除法結果繼續取餘,直到被除數為1(或是說被除數》0)為止,然後逆向獲取餘數結果即為所求。
綜上所述,我們可以得到乙個很簡單的演算法,完成這個需求
public
static string conversion(int n,int c)
return s;
}
例項 十進位制數n轉化為任意進製
題目描述 對於任意整數n,轉化成x進製的表達形式 演算法分析 演算法實現 十進位制正整數n到base進製的轉換 static const char basenum void convert std stack s,int64 n,int base void convertr std stack s,...
棧 十進位制轉化為任意制
include include define stack init size 100 define size increment 5 typedef struct 棧結構 sqstack,sqstack int stackinit sqstack s 初始化棧 int push sqstack s,...
十進位制數轉化為D進製數
pat b1022 輸入兩個非負10進製整數a和b 2 30 1 輸出 a b 的 d 1輸入格式 輸入在一行中依次給出 3 個整數 a b 和 d。輸出格式 輸出 a b 的 d 進製數。輸入樣例 123 456 8輸出樣例 1103思路 除基取餘法。基 就是要轉化的進製d,將十進位制數每次除以d...