棧實現十進位制轉換為二進位制,八進位制和十六進製制

2021-09-28 14:29:27 字數 1217 閱讀 4593

寫乙個程式,將輸入的十進位制資料m 轉換為八進位制資料m8,將其除錯通過.在此基礎上修改程式,實現十進位制資料m 向n 進製(2或8或16)的轉換.

#include

#include

#define init_size 100

#define n 80

typedef

struct stackstack;

/********初始化構建乙個空棧*********/

void

initstack

(stack &s)

//push函式將元素壓入棧

void

push

(stack &s,

int m)

s.base=p;

s.top=s.base+n;

s.size+

=n;}

*s.top=m;

//將新元素壓進棧頂;

s.top++

;//棧頂指標向上移動1個單位

}/********出棧函式*********/

intpop

(stack &s)

/********計算相應的進製並輸出*********/

void

calcu

(stack &s,

int n,

int r)

while

(s.top!=s.base)

else

printf

("%d"

,m);

//2進製和8進製 }}

intmain()

printf

("對應的二進位制的是:");

calcu

(s,n,2)

;printf

("\n對應的八進位制的是:");

calcu

(s,n,8)

;printf

("\n對應的十六進製制的是:");

calcu

(s,n,16)

;return0;

}

注意:此**具有侷限性,十位以內的運算正確,超出十位則會發生錯誤

十進位制 轉換為 二進位制

聽說優酷前端面試有問進製數轉換的,甚至是負正整數轉換為二進位制,那就索性一次整個明白 正整數轉二進位制 負整數轉二進位制 小數轉二進位制 1 正整數轉成二進位制。口訣 除二取餘,倒序排列,高位補零。42 除以2得到的餘數 右邊 為010101,然後倒著排一下就是取到的二進位制了 如下圖 計算機內部表...

用棧實現十進位制轉換為二進位制

include include include include include process.h define size 100 define stackincrement 10 define ok 1 define error 0 define true 1 define false 0 typ...

十進位制轉換二進位制 棧實現

c語言十進位制轉換二進位制,用順序棧實現。完整 如下 include include define maxsize 20 靜態順序棧儲存的最大空間 typedef struct sqstack void initstack sqstack s 棧的初始化 intpush sqstack s,int ...