进制转换问题(堆栈)
通过短除法,让十进制数不断被2整除,可以得到多个余数,最后将得到的余数从下到上排列组合,即可得到转化的二进制数。
例:十进制数9转化为二进制数
N=9
9%2=1 ,1压栈 , N=N/2;
N=4
4%2=0 ,0压栈 ,N=N/2;
N=2
2%2=0 ,0压栈 ,N=N/2;
N=1
1%2=1 ,1压栈 ,N=N/2;
N=0;
依次弹出栈内元素,结束。
完整代码:
#include<stdio.h>
#include<stdlib.h>
typedef struct StackNode{
int n;
struct StackNode * next;
}StackNode; //链栈结构体
typedef StackNode * LinkStack;