电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

十进制转换八进制算法

十进制转换八进制算法_第1页
1/8
十进制转换八进制算法_第2页
2/8
十进制转换八进制算法_第3页
3/8
十进制转换八进制算法(6页)Good is good, but better carries it.精益求精,善益求善。题目:数制转换问题1. 需求分析将十进制数 N 转换成八进制数是计算机实现计算的基本问题,解决方案很多,其中最简单的方法是除 8 取余法。1)本方案采纳顺序栈的方式模拟整个过程。其原理如下:例子:(1348)10=(2504)8NN div 8N mod 8134816841682102125202从中可以看出,最先产生的余数 4 是转换加过的最低位,这正好符合栈的“后进先出”的特性。2)功能:从键盘输入任意一个非负十进制整数,输出与其等值的八进制数;若输入一个负数,则显示输入错误,请重新输入。3)测试数据:(1348)10=(2504)8 ,(0)10=(0)8,(-1234)10 输入数据错误。2. 概要设计定义顺序栈类型,由键盘输入非负十进制整数 N,执行以下循环操作:N%8 入栈,N=N/8,直至 N=0。主 要 函 数 由 建 立 空 栈 Initsqstack ( ) 、 入 栈 Push ( ) 、 出 栈 Pop ( ) 和main()函数组成。过程中函数调用关系图如下:3. 详细设计1)数据类型定义struct Sqstack{int *bottom;int *top;int maxsize;};2)系统主要子程序详细设计A.建立空栈int Initsqstack (Sqstack &s){s.bottom =(int *)malloc(sizeof (int)*20);if(s.bottom){s.top =s.bottom;s.maxsize =20;return 1;}else return 0;}B.入栈void Push(Sqstack &s,int e){*s.top++=e;}C.出栈void Pop(Sqstack &s,int &e){//出栈e=*--s.top ;}4. 测试分析5. 源程序清单#includeusing namespace std;struct Sqstack{int *bottom;int *top;int maxsize;};int Initsqstack (Sqstack &s){//建立空栈s.bottom =(int *)malloc(sizeof (int)*20);if(s.bottom){s.top =s.bottom;s.maxsize =20;return 1;}else return 0;}void Push(Sqstack &s,int e){//入栈*s.top++=e;}void Pop(Sqstack &s,int &e){//出栈e=*--s.top ;}int StackEmpty(Sqstack &s){//推断是否为空栈if(s.top==s.bottom)return 1;else return 0;}int main(){Sqstack s;int N,e;Initsqstack(s);cout<<"请输入一个非负十进制整数:"<>N;if(N<0) cout<<"输入数据错误,请重新输入:"<

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

十进制转换八进制算法

确认删除?
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群