欢迎来到天天文库
浏览记录
ID:6659004
大小:97.93 KB
页数:12页
时间:2018-01-21
《高级语言程序设计-十六进制整数向其他进制整数转换的算法实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、《高级语言程序设计》课程设计报告书题目:十六进制整数向其他进制整数转换的算法实现专业:计算机科学与技术学号:学生姓名:指导教师:完成日期:9目录一、题目要求1二、系统概要设计22.1程序流程图22.2数据的组织描述32.3主要函数设计3三、系统关键代码33.1将十六进制转换为二进制33.2将十六进制数转换为八进制与十进制33.3完整代码6四、程序调试3五、课程设计总结39一、题目要求我的《高级语言程序设计课程设计》题目是:十六进制整数向其他进制整数转换的算法实现。指导教师对该题目有以下要求:实现十六进制整数向二进制、八进
2、制、十进制整数的转换。经过努力,我实现了下面的功能:1.输入十六进制整数后,可输出转换的二进制、八进制、十进制整数。2.加入程序名称和感谢使用等,是程序界面更美观友好。下面的功能由于自己知识储备不足,未能实现:1.用户可以选择输出想要转换的进制。2.界面排版更加规整友好。3.输入数字包含错误字符时提示报错,否则正常运行。9一、系统概要设计2.1程序流程图图1.程序流程图2.2数据的组织描述数制转换器程序是要求任意两种数间的相互转化,本次课程设计目标为实现十六进制向二进制、八进制、十进制的转化。对输入的十六进制的数字进行转
3、换,实现常见进制间的转换以及多种进制同时输出,大大提高了本程序的实用性。本程序直接运用转换说明符来将直接数制转换为八进制与十进制,精简代码行数,减小程序体积:9printf("*转换为十进制数为:%d",a);printf("*转换为八进制数为:%o",a);因十六进制不能通过转换说明符直接转换为二进制,所以选择先将十六进制数转换为十进制,再由十进制数转换成二进制数,完成一个间接转换过程。十进制转二进制是一个连续除2的过程,把要转换的数,除以2,得到商和余数,将商继续除以2,直到商为0。最后将所有余数倒序排列,得
4、到数就是转换结果。 此程序中十六进制转二进制即用此思想:inta;chars[20];inti=0,rem;printf("请输入一个十六进制整数:");scanf("%x",&a);do{rem=a%2;a=a/2;s[i]=rem;i++;}while(a!=0);printf("*转换为二进制数为:");while(i>0)printf("%d",s[--i]);printf("");}92.3主要函数设计该系统涉及到的主要函数及其说明如表1所示:表1.系统中的主要函数介绍序号函数声明函数功能1main()主函
5、数是程序执行的起点2scanf()格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中3%x、%X无符号以十六进制表示的整数4%o无符号以八进制表示的整数5%d十进制有符号整数6do/while先执行循环中的语句,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环7printf()格式化输出函数,一般用于向标准输出设备按规定格式输出信息8getchar()让程序调试运行结束后等待编程者按下键盘才返回编辑界面9一、系统关键代码下面详细地介绍一下第二部分中列出的各个函数。3.1将十六进制转换为二
6、进制do{rem=a%2;a=a/2;s[i]=rem;i++;}while(a!=0);printf("*转换为二进制数为:");while(i>0)printf("%d",s[--i]);printf("");}3.2将十六进制数转换为八进制与十进制inta;printf("请输入一个十六进制整数:");scanf("%x",&a);printf("");printf("*转换为十进制数为:%d",a);printf("*转换为八进制数为:%o",a);93.3完整代码#include7、>main(){printf("***进制转换器***");/*程序名称*/printf("");printf("");inta;chars[20];/*定义有20个位置的字符串*/inti=0,rem;printf("请输入一个十六进制整数:");/*输入十六进制数*/scanf("%x",&a);printf("");printf("*转换为十进制数为:%d",a);/*转换为十进制*/printf("*转换为八进制数为:%o",a);/*转换为八进制*/do{rem=a%2;a=a/2;s[8、i]=rem;i++;}while(a!=0);printf("*转换为二进制数为:");while(i>0)printf("%d",s[--i]);/*输出转换的二进制结果*/printf("");printf("");printf("*谢谢使用*");/*程序结束后感谢语,删除无影响*/getchar()
7、>main(){printf("***进制转换器***");/*程序名称*/printf("");printf("");inta;chars[20];/*定义有20个位置的字符串*/inti=0,rem;printf("请输入一个十六进制整数:");/*输入十六进制数*/scanf("%x",&a);printf("");printf("*转换为十进制数为:%d",a);/*转换为十进制*/printf("*转换为八进制数为:%o",a);/*转换为八进制*/do{rem=a%2;a=a/2;s[
8、i]=rem;i++;}while(a!=0);printf("*转换为二进制数为:");while(i>0)printf("%d",s[--i]);/*输出转换的二进制结果*/printf("");printf("");printf("*谢谢使用*");/*程序结束后感谢语,删除无影响*/getchar()
此文档下载收益归作者所有