對於十進位制轉化為任意進製數的簡單演算法分析

2021-08-21 03:48:19 字數 660 閱讀 6702

對於十進位制轉化為任意進製數的簡單演算法分析

基本思路:

對於十進位制轉任意進製,通常都是通過取餘逆序排列法獲得結果,舉個簡單例子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...