進製轉換(棧的應用code)

2021-08-05 19:03:37 字數 768 閱讀 6172

進製轉換,指的是將某一種進製的數轉換為另一種進製的數表示。在計算機領域經常用到,二進位制,十進位制,十六進製制之間的相互轉換。

本文基於棧這一工具實現進製的轉換,主要是因為在數學上,我們利用短除法來解決這一問題,先求得的餘數在表達上放在最後,這種機制跟棧的機制很像。

首先我們先建立棧,並且保證其具有initial(),pop(),push(),is_empty()等基本操作。**如下:

1.建立乙個關於棧的結構體:

typedef struct stack stack;
2.initial()等操作函式:

void initial_stack(int n, stack* s) 

void push_stack(char ch, stack* s)

*(s->top++) = ch;

void pop_stack(stack* s)

printf("%c ", *--s->top);

}bool empty(stack* s)

void get_top(stack* s)

void clearn_stack(stack* s)

3.進製轉換

void number_convert(stack* s, int value,int hex) ;

do while (value /= hex);

while(empty(s)==false)

}

進製的轉換 棧的應用

將十進位制數n和其他d進製數之間進行轉換是計算機實現計算的基本問題,解決方案很多,其中最簡單的方法是除d取餘法。例如,1348 10 2504 8,其轉化過程如下所示 n n div 8 n mod 8 1348 168 4 168 21 0 21 2 5 2 0 2 從中可以看出,最先產生的餘數4...

棧的應用3 進製轉換

進製轉換可以使用使用取餘法來實現 基本上是學習程式設計最常見的乙個練習。學習幾個基本的單詞 被除數 dividend 除數 divisor 商 quotient 餘數 remainder function numberconversion num,base 出棧拼接資料 var num stack....

8585 棧的應用 進製轉換

注意 寫這個的時候有點忘記棧和佇列的區別了,棧的base是作為陣列首位址的,因為棧只在頂部進進出出,所以說沒有必要重新開乙個指標陣列,相反,佇列頭出尾進,兩邊都要用,所以我們不得不開乙個指標陣列elem來專門存放資料,另外分別定義首尾位置指示器,還有一點就是迴圈佇列其實是佇列的一種較優的實現方式 i...