十進位制整數轉化R進製整數

2021-10-05 17:11:49 字數 1405 閱讀 9832

棧結構的邏輯結構為線性的,可建立鏈式結構使得入棧、出棧的操作是動態的,也可以很好地實現進製的轉換。而且進製轉換恰好和棧的輸入輸出輸出類似,故選擇棧是最好的。

功能:該函式實現建立初始化的棧。
具體過程:

1.建立乙個棧結構體指標s;

2.將s指標指向的s->top賦予-1,即定義棧頂初始為空。

功能:該函式實現判斷棧是否為空,棧為空則返回1,否則返回0。
功能:該函式實現判斷棧是否為空,棧為滿則返回1,否則返回0。
功能:該函式實現將元素依次入棧放於棧頂位置s->top。

具體過程:

1.先判斷棧是否滿,若棧已滿,則不能執行入棧操作,返回0;

2.若棧不滿,則將棧頂指標向上移,將元素入棧到棧頂位置。

功能:該函式實現將棧頂位置元素依次出棧。

具體過程:

1.先判斷棧是否為空,若棧為空,則不能執行出棧操作,返回0;

2.若棧不為空,則將棧頂指標向下移,將棧頂位置元素出棧。

功能:該函式實現將輸入的十進位制正整數轉換為r進製數。

具體過程:

1.先判斷棧是否為空,若棧為空,則不執行進製轉換,返回0;

2.若棧不為空,則根據入棧的棧頂元素的大小,決定出棧的元素。若入棧棧頂元素小 於10,則直接輸出;

若入棧棧頂元素為10/11/12/13/14/15,輸出a/b/c/d/e/f;

#include#define sm 110  //定義sm的值

#include #include #includetypedef struct mystack//定義結構體

sqstack;//結構體簡稱

sqstack *init_seqstack() //初始化棧

int isfull(sqstack *t)//判滿

return 0; //否則返回0

}int note(sqstack *t)//判空

return 0; //否則返回0 }

int pop1(sqstack *t,int data)//入棧

return 0; //否則結束入棧 }

int push1(sqstack *t,int *data)//出棧

else return 0; //否則結束出棧

} int zhuan(sqstack *t) //進製轉換

data--;

} } }

int main() //主函式

zhuan(t);//將棧裡的值進行轉換

while(1)

printf("\n");

}

char陣列轉化為十進位制整數

通過一些通訊方式傳輸的資料 比如 串列埠傳輸 有時候會儲存為char型別的資料資料,我們需要把char陣列中的所有資料轉化為int整數,方法一是直接通過移位運算來實現 char c 4 char t int num 0 int len sizeof c 2 char d sizeof c 2 for...

十進位制整數與二進位制整數 十六進製制整數之間的轉換

十進位制整數 如85 要轉換成二進位制我們最原始的方法呢就是短除法,但是當這個十進位制數比較大時短除法就有些麻煩了。其實可以這樣來計算 如85 64 16 4 1 2 6 1 2 4 1 2 2 1 2 0 1,二進位制最低位從第0位開始 以8位二進位制為例 式子中2的冪次對應第幾位第幾位就寫上1,...

理解十進位制整數轉二進位制整數

演算法 第四版 中的習題 1.3.5 中有這樣一段 stacks new stack while n 0 for int d s system.out.print d system.out.println 其作用是列印十進位制整數 n 的二進位制表示。下面解釋該演算法背後的道理。為簡化問題,預設輸入...