利用栈进行进制之间的转化

                                                       栈在进制转化中的体现 

     因为在该问题的解决过程中与栈中的数据元素进栈和出栈相类似,所以可以运用栈的进栈与出栈操作来解决。

代码:

#include<stdio.h>
#include<stdlib.h>
#define Maxsize 100
#define OK 1
#define ERROR 0
typedef struct{
        int *top;
        int *base;
        int stacksize;
}SeqStack;
int Initstack(SeqStack &s){
    s.base=(int *)malloc(Maxsize*sizeof(int));
    if(!s.base)
        return ERROR;
    s.top=s.base;
    s.stacksize=Maxsize;
}
int Push(SeqStack &s,int n){
    if(s.top-s.base==Maxsize)
        return ERROR;
    *s.top++=n;
}
int Pop(SeqStack &s){
     int n;
     if(s.base==s.top)
        return ERROR;
     while(s.top!=s.base){
          n=*--s.top;
          printf("%d",n);
     }
}
int Converse(int N){
    SeqStack s;
    Initstack(s);
    while(N){
        Push(s,N%2);
        N=N/2;
    }
    Pop(s);
}
int main(){
    int i;
    printf("请输入整数:");
    scanf("%d",&i);
    printf("该数的二进制为:");
    Converse(i);
    return 0;
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值