5.22递归实现数制转换
Q:将输入的二进制转换为十进制表达。
#include"stdio.h"
#include"math.h"int biTode(int n,int *sum,int *m) {char c;scanf("%c",&c);if(c!='#') {*m=*m+1;biTode(n+1,&(*sum),&(*m));}if(c=='1') *sum=*sum+pow(2,(*m)-n-1);
}int main() {int sum=0,m=0;printf("input a binary number ending for '#'\n");biTode(0,&sum,&m);printf("the decimal digit is\n");printf("%d ",sum);return 0;
}
分析:算法中参数sum用来记录累加和。参数m随着递归的深入不断加1,并且递归结束m的值也不会发生变化。因为参数sum和m都要在递归中保持值得不变,因此采用指针传递方式。参数n的值随着递归的深入不断加1,但是每一层的递归n的取值都不同。在将二进制转换为十进制时,2的指数应为(*m)-n-1.输入的二进制数以字符形式存储,当输入字符#时,表示二进制字符串输入结束。在调用该算法时,参数的初值都为0。
转载于:https://www.cnblogs.com/dd2hm/p/6806928.html
5.22递归实现数制转换相关推荐
- 栈(Stack),轻松解决数制转换和括号匹配问题!
http://data.biancheng.net/view/9.html 栈,线性表的一种特殊的存储结构.与学习过的线性表的不同之处在于栈只能从表的固定一端对数据进行插入和删除操作,另一端是封死的. ...
- 栈和队列应用之数制转换
数制转换是将任意一个非负的十进制数转换为其他进制的数,一般的方法是采用辗转相除法.参考<C#数据结构> N N/8 N%8 5142 642 ...
- c语言程序设计报告数制转换,数制转换-C语言程序设计课程设计报告.docx
计算机学院<高级语言程序设计>课程设计报告 PAGE \* MERGEFORMAT 10学号2016-2017学年 第二学期 <C语言程序设计> 课程设计报告 题目:数制转换专 ...
- 计算机数制转换操作方法,计算机数制转换新方法
摘要:本文分析了常用数制之间转换的方法,找出了其中规律,提出了数制转换的新方法,从而有利于学生迅速领会和掌握数制转换的技巧. 关键词:数制转换:权值:基数 中图分类号:G642 文献标识码:B 文章编 ...
- 计算机系统组成及工作原理PPT,第二章 计算机基础知识 2.1 计算机系统的组成与工作原理 2.2 数制转换及运算 2.3 数据在计算机中的表示....
Presentation on theme: "第二章 计算机基础知识 2.1 计算机系统的组成与工作原理 2.2 数制转换及运算 2.3 数据在计算机中的表示."- Presen ...
- 计算机中数制教学的游戏,浅谈计算机原理中的《数制及数制转换》
浅谈计算机原理中的<数制及数制转换> 论文联盟http:// 数制及其相互转换问题一直是学生学习过程中的难点.学生学习起来比较费力,并且不容易记住,在考试中也常常丢分,而且它也是学生进一步 ...
- java使用链栈实现数制转换
java实现链栈在前面有所介绍:http://www.cnblogs.com/lixiaolun/p/4644141.html 将前面java实现链栈的代码稍作修改: package linkedst ...
- 认识学习网络布线与数制转换
认识学习网络布线与数制转换 1.信号与传输介质 1.1.什么是信号? 1.2.信号在传输过程中产生的失真 1.3.数字信号的优势 1.4.双绞线 1.5.光纤 1.6.无线电波 1.7.微波 1.8. ...
- 常用的整数间的数制转换
常用的整数间的数制转换 前言 一.基本概念 1.数制: 2.数位: 3.基数: 4.位权: 二.转换 1.十进制转换二进制 2.二进制转换十进制 3.二进制转换其它进制 总结 前言 虽然计算机能极快地 ...
最新文章
- 京东物联网战略大升级|与华为合作,疯狂发布新品,“养鱼”的京东正在物联网赛道上花式秀技术...
- 为Ubuntu设置新的软件源
- AngularJS中关于ng-class和*ngIf指令
- django入门记录 2
- 工作流实战_25_flowable 流程中的自动跳过
- mysql的四个默认数据库是什么版本,MySQL5.7数据库字符集和排序规则有四个级别的默认设置:服务器,数据库,表和列。...
- cpoint 两个点距离_Wasserstein距离学习笔记
- 岂曰无衣 与子同袍——解析月狂病amp;壳之少女的世界
- win10系统无法登录ftp服务器失败,win10电脑下ftp连接失败怎么解决
- java api接口签名验证失败_简单API接口签名验证
- kakfa 3.0 创建topic流程(源码)
- [solved] hp victus ubuntu 20.04 wifi
- Scratch 飞机对战
- 三角测量的一些基础理论
- IBM TS3100磁带机更换磁带的方法
- php字符串转数组重命名键,【PHP】字符串转数组、数组转字符串
- UbnutuSkills
- 查看日期命令linux,linux date命令查看和设置时间详解(图文)
- python函数和类的区别_python-函数、类与对象
- ubuntu使用教程与常用命令