
求教一个十六进制数转化为十进制再乘以100,再转化为十六进制的c程序怎么写?
求教一个十六进制数转化为十进制再乘以100,再转化为十六进制的c程序怎么写?比如得到十六进制数16,转化为十进制22,再求2200的十六进制...
求教一个十六进制数转化为十进制再乘以100,再转化为十六进制的c程序怎么写?比如得到十六进制数16,转化为十进制22,再求2200的十六进制
展开
展开全部
你好,这个很简单,下面程序可以把十进制转换为N进制!
#include
#include
#define size 20
typedef struct stack
{int ele[size];
int top;
}stack;
void empty(stack *s)//初始化栈为空
{
s->top=-1;
}
void push(stack *s,int n)//入栈
{if(s->top==size-1)
{printf("栈空间已满,无法入栈!");
exit(0);
}
s->ele[++s->top]=n;
}
int pop(stack *s)//出栈
{ if(s->top==-1)
{printf("空栈,无法出栈!");
exit(0);
}
return s->ele[s->top--];
}
int main()//主函数
{int num,j,data;
stack *s;
s=(stack *)malloc(sizeof(stack));
empty(s);
printf("请输入一个正整数;");
scanf("%d",&num);
printf("请输入要转换的进制数;\n2.二进制\n8.八进制\n16.十六进制\n");
scanf("%d",&j);
while(num)
{data=num%j;
push(s,data);
num=num/j;
}
printf("%d进制数为: ",j);
while(s->top!=-1)
{data=pop(s);
printf("%d",data);
}
return 0;
}
#include
#include
#define size 20
typedef struct stack
{int ele[size];
int top;
}stack;
void empty(stack *s)//初始化栈为空
{
s->top=-1;
}
void push(stack *s,int n)//入栈
{if(s->top==size-1)
{printf("栈空间已满,无法入栈!");
exit(0);
}
s->ele[++s->top]=n;
}
int pop(stack *s)//出栈
{ if(s->top==-1)
{printf("空栈,无法出栈!");
exit(0);
}
return s->ele[s->top--];
}
int main()//主函数
{int num,j,data;
stack *s;
s=(stack *)malloc(sizeof(stack));
empty(s);
printf("请输入一个正整数;");
scanf("%d",&num);
printf("请输入要转换的进制数;\n2.二进制\n8.八进制\n16.十六进制\n");
scanf("%d",&j);
while(num)
{data=num%j;
push(s,data);
num=num/j;
}
printf("%d进制数为: ",j);
while(s->top!=-1)
{data=pop(s);
printf("%d",data);
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询