十进制转二进制(栈)

#include<stdio.h>


void D2B(int n)
{
    int top=-1,stack[100];
    while(n>0)
    {
        if(n%2==0)
            stack[++top]=0;
        else
            stack[++top]=1;
        n=n/2;
    }
    printf("binary:");
    while(top>=0)
        printf("%c",stack[top--]+'0');
    printf("\n");
}

void main()
{
    int n;
    printf("decimal:");
    scanf("%d",&n);
    D2B(n);
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
顺序是一种的存储结构,它是用一段连续的存储单元依次存储中的元素,顶指针指向顶元素。顺序可以用数组来实现十进制转二进制是指将一个进制数转换为二进制数。顺序可以用来实现十进制转二进制的功能。具体实现方法如下: 1. 定义一个顺序,用于存储二进制数。 2. 输入一个进制数,将其不断除以2,将余数压入中,直到商为0。 3. 依次出,输出中的元素,即为该进制数的二进制表示。 以下是代码实现: ``` #include <stdio.h> #include <stdlib.h> #define MAXSIZE 20 //静态顺序存储的最大空间 typedef struct { int data[MAXSIZE];//静态顺序可用的最大容量 int top;//顶 }SqStack; void InitStack(SqStack &S)//的初始化 { S.top = -1;//静态顺序中,使S.top=-1便是对的初始化 } int Push(SqStack &S,int e)//进 { if(S.top==MAXSIZE-1)//判断是否为满 { printf("满!\n"); return 0; } S.data[++S.top]=e;//S.top自加一,使S.top=0,使输入的e值导入中 return 0; } void Pop(SqStack &S)//使顶元素出,并输出顶元素,且长减一 { if(S.top == -1)//判断是否为空 printf("空!\n"); else printf("%d",S.data[S.top--]);//输出顶元素 } void Binary(SqStack S)//十进制转二进制函数 { int a, i = 0; printf("请输入进制数: "); scanf("%d",a);//输入任意的进制数 while(a)//循环结束条件是a为0 { Push(S,a%2);//余数进 a = a/2;//由于是整数形式,不存在除不尽的状况,假设a=1,除2等于0 i++;//记录进多少次 ,方便出操作 } while(i)//循环终止条件是i为0 { Pop(S);//依次输出顶元素 i--; } } int main() { SqStack S; InitStack(S);//创建一个,并初始化 Binary(S);//进制转换 return 0; } ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值