主要是利用棧「**先出」的特性,逐個存放二進位制數字的個個位數,然後逐一取出,挨個乘以2的次方,然後相加起來,**由c語言實現,
#include
#include
#include
# define stack_init_size 20
# define stackincrement 10
typedef
char elemtype;
typedef
struct
sqstack;
void
initstack
(sqstack *s)
s->top=s->base;
s->stacksize=stack_init_size;
}void
push
(sqstack *s,elemtype e)}*
(s->top)
=e; s->top++;}
void
pop(sqstack *s,elemtype *e)
*e=*
--(s->top);}
intstacklen
(sqstack s)
intmain()
getchar()
;//"將回車從緩衝區去掉"
len=
stacklen
(s);
printf
("棧的當前容量是:%d\n"
,len)
;for
(i=0
;i)printf
("轉化為十進位制數字:%d\n"
,sum)
;return0;
}
寫這個**主要是為了練習棧的語句用法,為了學習而練手 2023 將十進位制數轉化為二進位制數
time limit 3 second memory limit 2 mb 輸入乙個不大於32767的正整數n,將它轉換成乙個二進位制數並輸出。例如 輸入 100 輸出 1100100 為方便判斷當正整數n大於32767時的情況,請將n設定為長整型。如果n的值不在規定的範圍,將輸出 error 第一...
十進位制轉化為二進位制
今天我們來實現乙個有趣的小案例。要求 任意輸入乙個正十進位制數把它轉化為二進位制數輸出。我這裡使用了遞迴演算法 def transit num,binary 十進位制轉化為二進位制 param num 輸入的10進製 return none if num 2 remainder num 2 num ...
利用棧二進位制轉化為十進位制
利用資料中的棧來進行數制轉換,可以深刻領悟棧的含義,也可對棧的定義,入棧,出棧來進行領悟。程式 如下 include include include define stack init size 20 定義為棧的初始記憶體大小 define stackincrement 10 定義為當棧的空間不夠時...