十六进制整数向其他进制整数转换_课程设计报告

上传人:人*** 文档编号:507371952 上传时间:2024-01-17 格式:DOCX 页数:12 大小:98.91KB
返回 下载 相关 举报
十六进制整数向其他进制整数转换_课程设计报告_第1页
第1页 / 共12页
十六进制整数向其他进制整数转换_课程设计报告_第2页
第2页 / 共12页
十六进制整数向其他进制整数转换_课程设计报告_第3页
第3页 / 共12页
十六进制整数向其他进制整数转换_课程设计报告_第4页
第4页 / 共12页
十六进制整数向其他进制整数转换_课程设计报告_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《十六进制整数向其他进制整数转换_课程设计报告》由会员分享,可在线阅读,更多相关《十六进制整数向其他进制整数转换_课程设计报告(12页珍藏版)》请在金锄头文库上搜索。

1、高级语言程序设计课 程 设 计 报 告 书 题 目:十六进制整数向其他进制整数转换的算法实现专 业: 计算机科学与技术 学 号: 学生姓名: 指导教师: 完成日期: 4目录一、题目要求1二、系统概要设计22.1程序流程图22.2数据的组织描述32.3主要函数设计3三、系统关键代码33.1将十六进制转换为二进制33.2将十六进制数转换为八进制与十进制33.3完整代码6四、程序调试3五、课程设计总结3一、 题目要求我的高级语言程序设计课程设计题目是:十六进制整数向其他进制整数转换的算法实现。指导教师对该题目有以下要求:实现十六进制整数向二进制、八进制、十进制整数的转换。经过努力,我实现了下面的功能

2、:1.输入十六进制整数后,可输出转换的二进制、八进制、十进制整数。2.加入程序名称和感谢使用等,是程序界面更美观友好。下面的功能由于自己知识储备不足,未能实现:1. 用户可以选择输出想要转换的进制。2. 界面排版更加规整友好。3. 输入数字包含错误字符时提示报错,否则正常运行。二、 系统概要设计2.1程序流程图图1.程序流程图2.2数据的组织描述数制转换器程序是要求任意两种数间的相互转化,本次课程设计目标为实现十六进制向二进制、八进制、十进制的转化。对输入的十六进制的数字进行转换,实现常见进制间的转换以及多种进制同时输出,大大提高了本程序的实用性。 本程序直接运用转换说明符来将直接数制转换为八

3、进制与十进制,精简代码行数,减小程序体积:printf(*转换为十进制数为:%dn,a);printf(*转换为八进制数为:%on,a);因十六进制不能通过转换说明符直接转换为二进制,所以选择先将十六进制数转换为十进制,再由十进制数转换成二进制数,完成一个间接转换过程。十进制转二进制是一个连续除2的过程,把要转换的数,除以2,得到商和余数,将商继续除以2,直到商为0。最后将所有余数倒序排列,得到数就是转换结果。此程序中十六进制转二进制即用此思想:int a;char s20; int i=0,rem;printf(请输入一个十六进制整数: ); scanf(%x,&a); do rem=a%2

4、;a=a/2; si=rem;i+;while(a!=0);printf(*转换为二进制数为:);while(i0)printf(%d,s-i); printf(n);2.3主要函数设计该系统涉及到的主要函数及其说明如表1所示:表1. 系统中的主要函数介绍序号函数声明函数功能1main()主函数是程序执行的起点2scanf()格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中3%x、%X无符号以十六进制表示的整数4%o无符号以八进制表示的整数5%d十进制有符号整数6do/while先执行循环中的语句,然后再判断表达式是否为真, 如果为真则继续循环;如果为假, 则终止循环7pri

5、ntf()格式化输出函数, 一般用于向标准输出设备按规定格式输出信息8getchar()让程序调试运行结束后等待编程者按下键盘才返回编辑界面三、 系统关键代码下面详细地介绍一下第二部分中列出的各个函数。3.1将十六进制转换为二进制do rem=a%2;a=a/2; si=rem;i+;while(a!=0);printf(*转换为二进制数为:);while(i0)printf(%d,s-i);printf(n); 3.2将十六进制数转换为八进制与十进制int a;printf(请输入一个十六进制整数: ); scanf(%x,&a);printf(n); printf(*转换为十进制数为:%d

6、n,a); printf(*转换为八进制数为:%on,a);3.3完整代码#includemain()printf( *进制转换器*n); /*程序名称*/printf(n);printf(n);int a;char s20; /*定义有20个位置的字符串 */ int i=0,rem;printf(请输入一个十六进制整数: ); /*输入十六进制数*/ scanf(%x,&a);printf(n); printf(*转换为十进制数为:%dn,a); /*转换为十进制*/ printf(*转换为八进制数为:%on,a); /*转换为八进制*/ do rem=a%2;a=a/2; si=rem;

7、i+;while(a!=0);printf(*转换为二进制数为:);while(i0)printf(%d,s-i); /*输出转换的二进制结果*/ printf(n);printf(n);printf(*谢谢使用*); /*程序结束后感谢语,删除无影响*/getchar(); /*让程序调试运行结束后等待编程者按下键盘才返回编辑界面*/四、 程序调试文件打开成功并显示:图2.使用提示显示在屏幕上输入一个十六进制整数(以A为例)的运行结果:图3.数制转换结果例一进一步输入较复杂十六进制数(以ABCDE为例)的运行结果:图4.数制转换结果例二五、 课程设计总结通过本学期的高级语言程序设计课程设计,

8、我收获了很多。首先是运用转换说明符来改变数字进制,刚开始没有想到运用转换说明符时,对每一个进制转换都要编写代码,比较繁琐和容易出错。后来运用转换说明符后,准确性有了很大保证,也减少了代码数量,缩小了程序体积,并可以提高运行速度。其次是十六进制转换十进制,因为二进制没有转换说明符,所以此处需要自行编写代码,编写时在思路的问题上一度出现卡壳,后来在寻求同学和老师的帮助后确定了取余的思路,并使用了do/while语句成功完成了这部分代码。第三是在开头加入了程序名称,结尾加入了结束语。使程序更加直观易用,以及使界面更加友好美观。但是程序上因为自身的不足也存在很多问题,例如自己的能力没有办法很好实现对错误字符的筛选,在输入不属于十六进制数的字符时不能提示报错,导致结果出现错误。这个问题会在后续的学习和改正中努力修正,使程序尽自己所能靠近完美。很感谢老师的悉心教导,平时没有注意到很多细节性的问题,老师能够耐心细心的进行引导,让我的能力得到很大提升,对C语言也有了更深刻的认识。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 国内外标准规范

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号