...的十进制数N转换成另一个等价的二进制数和八进制
发布网友
发布时间:2024-04-06 03:09
我来回答
共1个回答
热心网友
时间:2024-04-21 03:39
#include <stdio.h>
#include <stdlib.h>
#define MaxSize 50
typedef char ElemType;
typedef struct
{
ElemType data[MaxSize];
int top;
}SqStack;
void InitStack(SqStack *&s)
{
s = (SqStack *)malloc(sizeof(SqStack));
s -> top = -1;
}
int Push(SqStack *&s, ElemType e)
{
if(s -> top == MaxSize - 1)
return 0;
s -> top++;
s -> data[s -> top] = e;
return 1;
}
int Pop(SqStack *&s, ElemType &e)
{
if(s -> top == -1)
return 0;
e = s -> data[s -> top];
s -> top--;
return 1;
}
int GetTop(SqStack *s, ElemType &e)
{
if(s -> top == -1)
return 0;
e = s -> data[s -> top];
return 1;
}
void DispStack(SqStack *s)
{
int i;
for(i = s -> top; i >= 0; i--)
printf("%c", s -> data[i]);
printf("\n");
}
int fun(SqStack *s,int num, int k) //可将十进制转换成2-9进制
{
static int count = 0;
int n;
if(num < k)
{
Push(s, num+48);
return count;
}
n = num % k;
Push(s, n+48);
fun(s,num/k, k);
}
int main()
{
SqStack *t,*e;
InitStack(t);
InitStack(e);
fun(t, 4, 2); //将一个十进制数转换成二进制数
fun(e, 64, 8); //将一个十进制数转换成八进制数
DispStack(t);
DispStack(e);
free(t);
free(e);
return 0;
}