#define N 8//定义待转换的进制N(二进制-九进制)typedefint SElemType;//定义栈元素类型为整数voidconversion(){//对于输入的任意一个非负十进制整数,打印输出与其等值的N进制数
SqStack s;unsigned n;//非负整数
SElemType e;InitStack(s);//初始化栈printf("将十进制整数n转换为%d进制数,请输入:n(>=0)=", N);scanf("%u",&n);//输入非负十进制整数nwhile(n)//当n不等于0{Push(s, n%N);//入栈n除以N的余数(N进制的低位)
n = n / N;}while(!StackEmpty(s))//当栈不空{Pop(s, e);//弹出栈顶元素且赋值给eprintf("%d", e);//输出e}printf("\n");}
voidconversion2()//十进制->十六进制{
SqStack s;unsigned n;//非负整数
SElemType e;InitStack(s);//初始化栈printf("将十进制整数n转换为十六进制数,请输入:n(>=0)=");scanf("%u",&n);//输入非负十进制整数nwhile(n)//当n不等于0{Push(s, n %16);//入栈n除以16的余数(十六进制的低位)
n = n /16;}while(!StackEmpty(s))//当栈不空{Pop(s, e);//弹出栈顶元素且赋值给eif(e <=9)printf("%d", e);elseprintf("%c", e +55);//大于9的余数,输出相应的字符}printf("\n");}