首页 > 代码库 > 用栈实现进制转换
用栈实现进制转换
“除基取余 + 顺序栈” 实现十进制数转换成其他进制数,代码如下:
#include <stdio.h>
#define MAX_L 100
//定义栈
typedef struct
{
int data[MAX_L];
int top;
}Stack;
//进制转换
//origin是待转数,right是要转的目的数的权
void Convert(int origin, int right)
{
Stack s; //初始化栈
static char *lookup = "0123456789ABCDEF"; //用于输出
s.top = -1;
while(origin)
{
s.data[++(s.top)] = origin % right;
origin /= right;
}
while(s.top != -1)
{
putchar(lookup[s.data[s.top--]]);
}
printf("\n");
}
int main()
{
int num, r;
while(1)
{
puts("请输入要转换的数和要转换的进制权(eg:12345,2):");
scanf("%d,%d", &num, &r);
Convert(num, r);
}
scanf("%d",&r);
return 0;
}
用栈实现进制转换
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。