十进制向二进制转换

#include<stdio.h>
#include<malloc.h>
#define max 9
typedef  int elemtype;
typedef struct 
{
    elemtype data[max];
    int top;
} sqstack;
void initst(sqstack *&st)
{
    st=(sqstack *)malloc(sizeof(sqstack));
    st->top=-1;
}
bool push(sqstack *& st,elemtype i)
{    
    if(st->top==max-1)
        return false;
    st->top++;
    st->data[st->top]=i;
    return true;
}
bool pop(sqstack *& st,elemtype &i)
{    
    if(st->top==-1)
        return false;
    i=st->data[st->top];
    st->top--;
    return true;
}
bool stempty(sqstack *st)
{
    return(st->top==-1);
}
int main()
{
    int num;
    elemtype i;
    sqstack *st;
    printf("输入一个整数:");
    scanf("%d",&num);
    initst(st);
    while(num<2)
    {    
        i=num%2;
        num=num/2;
        push(st,i);
    }
    push(st,num);
    printf("转换成二进制: ");
    while(!stempty(st))
    {
        pop(st,i);
        printf("%d",i);
    }
    printf("\n");
}
 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值