数据结构--栈的应用1:数据转换

将输入的十进制数转换为对应的2位8位16位进制的数

//链表栈,顺序栈的基本操作请参考之前的文章http://t.csdn.cn/By5Ko

//栈的应用1:数值的转换
void conversion(void)
{
    LinkStack s=stack_init();
    uint num,N;//需要转换的十进制,进制
    printf("plz input A num:");
    scanf("%d",&num);

    printf("plz input decimal(2 8 16):");
    scanf("%d",&N);

    int ret;
    while(num)//进栈
    {
        //计算num和N取模的结果,并将过入栈
        ret=num % N;
        if(ret>=0 && ret<=9)
            Push(&s,ret+'0');//存放字符类型
        else if(ret>=10 && ret<=15)
            Push(&s,ret-10+'A');
        num=num/N;
    }
//出栈
    ElemType data;
    while (s)
    {
        pup(&s,&data);
        printf("%c",data);//打印的为字符类型,注意输出为%c
    }
    printf("\n");
}

注意:栈的的数据类型为字符类型,将十进制转化为对应的其他进制就是在这个十进制的数的基础上连续除以10取余,然后以此存放到栈中入栈,直到取余为0时,出栈打印出对应的值,即为对应的。

结果显示:

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值