問題描述:
將乙個非負的十進位制整數n轉換為另乙個等價的基為b的b進製數的問題。
解答:按除2取餘法,得到的餘數依次是1、0、1、1,則十進位制數轉化為二進位制數為1101。
分析:由於最先得到的餘數是轉化結果的最低位,最後得到的餘數是轉化結果的最高位,因此很容易用棧來解決。
**如下:
#include#include#includetypedef struct node
node ,*pnode;
typedef struct stack
stack,*pstack;
bool empty(pstack ps)
void initstack(pstack ps)
else
return ;
}void push(pstack ps,int val)
void pop(pstack ps)
else }
int main()
while(s.pbottom!=null)
system("pause");
return 0;
}
棧的應用(數制轉換)
程式功能 對於輸入的任意乙個非負十進位制整數,列印輸出與其等值的八進位制數。標頭檔案 c3 1.h ifndef c 3 1 h define c 3 1 h include include include define true 1 define false 0 endif algorithm.h...
棧的應用 數制轉換
數制轉換 十進位制數n和其它d進製數的轉換是計算機實現計算的基本問題,其解決方法很多,其中一種簡單方法基於以下原理.n n div d d n mod d 其中 div為整除運算,mod 為求餘運算.例如 10進製數1348轉換為8進製為 2504.其運算過程如下 n n div d n mod d...
棧的應用1 數制轉換
一般分為 二 八 十 十六這幾種常見的 沒錯就是我現在能見到的 x進製就是0 x 1構成每一位,就如二進位制是0 1,八進位制是0到7 數制轉換一直是計算機的乙個基本問題,目前已經有了很多的解決方法。如果是其他進製轉換十進位制 因為十進位制多數人還是比較熟悉的,畢竟買菜時價錢不是二進位制的 先找到每...