c c 十進位制轉換任意進製數(遞迴和非遞迴)

2021-09-24 05:35:13 字數 1445 閱讀 7799

將非負十進位制整數n轉換成b進製。(其中b=2~16)

記住這個方法:對於進製轉換類問題,就是不斷的餘b模b。(b代表進製數的基數)

具體步驟:重複執行①和步驟②,直到n為0結束。

①取b進製數的個位:求餘運算n%b,把結果存入陣列。

②將10進製數降一階:整除運算n=n/b。

③逆序輸出陣列元素。如果陣列元素小於10,照原樣輸出;如果陣列元素大於等於10,輸出其相應的符號,例如,10輸出a,11輸出b......

(原文:

eg:將13轉換為2進製的過程如下:

n = 13,b = 2

->>13 % 2 = 1

->>13 / 2 = 6

->> 6 % 2 =0

->> 6 / 2 = 3

->> 3 % 2 = 1

->>3 / 2 = 1

->> 1 % 2 = 1

->> 1 / 2 = 0

輸出:1101

遞迴模型

①遞迴

void convert(int i,int b)

a[cnt++]=i%b;

convert(i/b,b);

}

②非遞迴非遞迴就是利用while迴圈。

//非遞迴 

//遞迴

/*void convert(int i,int b)

a[cnt++]=i%b;

convert(i/b,b);}*/

//非遞迴

void convert(int i,int b)

}int print(int &num)

else

}printf("\n");

printf("繼續嗎?(1(y)/0(n)");

num = 0;

scanf("%d",&flag);

return flag;

}int main()

convert(integer,base);

flag = print(cnt);

} return 0;

}

十進位制和任意進製的轉換

s.push 入棧s.top 取棧頂元素 s.pop 出棧s.empty 棧不為空 1.十進位制轉換成八進位制 二進位制 include include include windows.h using namespace std int main while s.empty system pause...

任意進製轉換十進位制 c語言

也不算是任意進製,最高只能到十六進製制。見諒!如下 include include include define maxsize 100 靜態順序棧儲存的最大空間 const char f 0123456789abcdef 定義乙個全域性常量 方便匯出十進位制以上的不為數字形式的資料的顯示 void...

C 實現十進位制轉換為任意進製

十進位制數在c 中用什麼表示?乙個十進位制數,在程式中用什麼方式轉換為其他進製,和在數學中的思路一樣嗎?輸出的結果用什麼表示比較方便?下面的程式中digit思考為什麼要用靜態變數?include include include include using namespace std class so...