將十進位制數n轉換成其他d進製數
n=(n div d) * d+n mod d (其中:div為整除運算,mod為求餘運算)
(1348)10=(2504)8,其運算過程如下:
//程式名稱:數制轉換
//編譯環境:vc++ 6.0
//修改日期:2018-10-25
#define stack_init_size 100
#define stackincrement 10
#define overflow -1
#define ok 1
#define error 0
#define true 1
#define false 0
#include#includetypedef int status;
typedef int selemtype;
//定義順序棧
typedef structsqstack;
//初始化
status initstack(sqstack &s)
//入棧操作
status push(sqstack &s,selemtype e)
*s.top++ = e;
return ok;
}//獲取棧頂元素
status gettop(sqstack s,selemtype &e)
//出棧操作
status pop(sqstack &s,selemtype &e)
//求棧長
status stacklength(sqstack s)
//清空棧
status clearstack(sqstack &s)
//探空
status stackempty(sqstack s)
//輸出棧中元素
void print(sqstack s)
}//銷毀棧
status destroystack(sqstack &s)
//數制轉換
void main()
while(!stackempty(s))
}
棧的應用(數制轉換)
程式功能 對於輸入的任意乙個非負十進位制整數,列印輸出與其等值的八進位制數。標頭檔案 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轉換為另乙個等價的基為b的b進製數的問題。解答 按除2取餘法,得到的餘數依次是1 0 1 1,則十進位制數轉化為二進位制數為1101。分析 由於最先得到的餘數是轉化結果的最低位,最後得到的餘數是轉化結果的最高位,因此很容易用棧來解決。如下 include incl...
棧的應用 數制轉換
數制轉換 十進位制數n和其它d進製數的轉換是計算機實現計算的基本問題,其解決方法很多,其中一種簡單方法基於以下原理.n n div d d n mod d 其中 div為整除運算,mod 為求餘運算.例如 10進製數1348轉換為8進製為 2504.其運算過程如下 n n div d n mod d...