进制转换就是将十进制数转换成相应的二进制、八进制和十六进制。原理是将十进制模二进制或者八进制或者十六进制所得的余数按从低到高的顺序入栈后,再按从高到底的顺序出栈,就可以将要得到的进制数输出。
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <stdbool.h>
#define STACK_INIT_SIZE 100 //存储空间初始分配
#define STACKINCREMENT 10 //存储空间非配总量
typedef int SElemType;
typedef int Status;
typedef struct stack
{
int *base;
int *top;
int stacksize;
}Sqstack,*PSqstack;
/***************************************
操作功能:初始化栈
***************************************/
PSqstack Init_stack(PSqstack S)
{
S->base = (SElemType *)malloc(STACK_INIT_SIZE * sizeof(SElemType));
if(!S->base)
{
printf("内存分配失败\n");
exit(-1);
}
S->top = S->base;//不要写成S->base = S->top
S->stacksize = STACK_INIT_SIZE;
return S;
}
/*****************************************
操作功能:判断栈是否为空
**************************************