对与栈的联系(二进制数字转化为十进制数字)

主要是利用栈“后入先出”的特性,逐个存放二进制数字的个个位数,然后逐一取出,挨个乘以2的次方,然后相加起来,代码由c语言实现,

话不多说上代码

#include<stdio.h>
#include<stdlib.h>
#include<math.h># define STACK_INIT_SIZE 20
# define STACKINCREMENT 10typedef char ElemType;
typedef struct
{ElemType *base;ElemType *top;int stackSize;
}sqstack;void Initstack(sqstack *s)
{s->base =(ElemType *)malloc(STACK_INIT_SIZE*sizeof(ElemType));if(!s->base){exit(0);}s->top=s->base;s->stackSize=STACK_INIT_SIZE;
}void push(sqstack *s,ElemType e)
{if(s->top-s->base>=s->stackSize){s->base=(ElemType *)realloc(s->base,(s->stackSize+STACKINCREMENT)*sizeof(ElemType));if(!s->base){exit(0);      //表示空间分配失败,用exit函数跳出。}}*(s->top)=e;s->top++;
}void Pop(sqstack *s,ElemType *e)
{if(s->top==s->base){return;}*e=*--(s->top);
}int StackLen(sqstack s)
{return (s.top-s.base);
}int main()
{ElemType c;sqstack s;int len,i,sum=0;Initstack(&s);printf("请输入二进制数字,输入#字符表示结束!\n");scanf("%c",&c);while(c!='#'){push(&s,c);scanf("%c",&c);}getchar();       //"将回车从缓冲区去掉"len=StackLen(s);printf("栈的当前容量是:%d\n",len);for(i=0;i<len;i++){Pop(&s,&c);sum=sum+(c-48)*pow(2,i);}printf("转化为十进制数字:%d\n",sum);return 0;
}

写这个代码主要是为了练习栈的语句用法,为了学习而练手

走过路过点个赞再走~;

二进制数转化为十进制数(栈的学习练习)相关推荐

  1. 在Java中将二进制数转化成十进制数

    这里二进制数有两种表示方式,不同方式的代码略有不同: 1.将二进制数用boolean数组表示 假设要求解的二进制数为:1101(也就是十进制数13) public class TransformTse ...

  2. 如何把单精度二进制数转换成十进制数?

    如何把单精度二进制数转换成十进制数? 单精度二进制数32位,符号1位,指数8位,尾数23位 步骤: 1.如果最高位为1,则为复数,否则为正数. 2.接下来8位为指数,减去二进制01111111(十进制 ...

  3. 单片机c语言如何表示二进制,单片机C语言中将二进制数转化为十进制的办法

    单片机C语言中将二进制数转化为十进制的办法 1.最简单最直观的方法,将2进制方式表示的数转化为10进制表示的数,要用除10取余法,步骤如下 被除数记为x,10进制表示的结果用数组a表示 1. i=0; ...

  4. 将二进制数转化为十进制

    将二进制数转化为十进制 bianary_number="11100" length=len(bianary_number) #求二进制字符串的长度 result=0 #记录二进制的 ...

  5. 汇编学习-程序改进:四位十六进制数转化为十进制数

    程序运行效果如下: 如题,程序可以实现四位十六进制数转换为十进制数 思路是,循环输入字符并将其转换为真实的数值(0-9的ASCII码减去30H,a-f的ASCII码减去57H)分别存入内存,再循环将这 ...

  6. 如何把二进制数化成十进制数_如何将二进制数1101.1转化成十进制数?计算步骤是怎样的?...

    展开全部 1101.1转换32313133353236313431303231363533e78988e69d8331333365633938为10进制为13.5 进制转换是人们利用符号来计数的方法. ...

  7. 单精度浮点数转化为十进制数的原理

    在做MODBUS通讯时经常会用到单精度浮点数来表示测量值,比如41 20 00 00代表十进制的10,用代码可以轻松实现转换,但是他是怎么计算出来的呢?查了一些资料后我知道了计算的方法,在此记录一下. ...

  8. C语言实现将十六进制数转化为十进制数

    输入一个以回车结束的字符串,滤去所有的非十六进制字符后,组成一个新字符串(十六进制形式),输出该字符串并将其转换为十进制数后输出. [输出形式]输出为两行 第一行为整理后的新串 第二行为一个十进制数字 ...

  9. python如何把八进制转换成十进制_Python练习实例82 | 八进制数如何转化为十进制数?...

    八进制数,其实是一种以8为进制的数字,逢8进1,八进制转十进制的算法,各位小伙伴们其实百度搜一下相关的视频,就会出来一大堆,比如下面的一个视频截图,显示了主要的算法. 算法.png 使用Python来 ...

最新文章

  1. Eclipse插件:Eclipse Color Theme
  2. setinterval 会被销毁吗_链信全国城市节点竞价活动完美收官,第一批节点总计销毁516600个CCT!...
  3. 由C过渡到C++-入门知识点
  4. codechef Polo the Penguin and the Tree
  5. python自动输入账号密码_Python如何基于selenium实现自动登录博客园
  6. Python 函数声明和调用 - Python零基础入门教程
  7. mysqlfor循环中出错继续_运维大佬教你“打僵尸”——处理Linux系统中大量的僵尸进程(2)...
  8. JSON与XML的选择
  9. 下载和安装CUDA和Cudnn(图文详解)
  10. 人月神话阅读笔记06
  11. L1-016 查验身份证 (15 分) — 团体程序设计天梯赛
  12. Enum Helper
  13. c# 注册了Ctrl+空格为热键,捕获后发送Ctrl+Shift
  14. capjoint一些生成文件的解释
  15. Android7.1 音频声音控制策略
  16. html更改提示框内容,JS修改内容提示框字体样式
  17. 如何终止运行matlab,matlab终止运行命令
  18. 深度:巨头覆盖之下中老年电商的创新突破策略-获客、选品、转化、粘性
  19. 数据库(Mysql)的事物详解
  20. suse日志服务器配置

热门文章

  1. python矩阵求逆函数_09-30:Python矩阵求逆
  2. wikisql 数据集解释_Wiki语料处理
  3. ggplot2箱式图两两比较_ggplot2 - 箱线图(Box - plot)
  4. 批标准化(Batch Normalization )最详细易懂的解释
  5. matlab bp归一化,bp网络样本归一化处理
  6. 根据EXCEL自制分布查询表(正太和泊松为例)
  7. discern the words in the picture and then search it on the web
  8. 外贸跨境商城app,多语言,多货币,跨境电商系统开发
  9. 软件测试可以用苹果电脑嘛,苹果M1版MacBook超详细兼容测试结果出炉:可兼容这些软件...
  10. 微软暗讽谷歌封杀Windows