二進位制數轉化為十進位制數(棧的學習練習)

2021-10-02 16:09:25 字數 886 閱讀 3600

主要是利用棧「**先出」的特性,逐個存放二進位制數字的個個位數,然後逐一取出,挨個乘以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 定義為當棧的空間不夠時...