数制转换-C语言程序设计课程设计报告.docx

数制转换-C语言程序设计课程设计报告.docx

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

计算机学院《高级语言程序设计》课程设计报告

PAGE6

学号

201

2016-2017学年第二学期

《C语言程序设计》

课程设计报告

题目:

数制转换

专业:

网络工程(对口)

班级:

姓名:

指导教师:

成绩:

计算机学院

2017年4月25日

目录

TOC\o1-3\h\z\u一、转换概述 2

1、需求分析 2

2、概要设计 2

3.详细设计 4

1.十进制转化为任意进制函数: 4

2.任意进制转化十进制函数: 5

3.程序流程图 6

4.运行环境 11

5.开发工具和编程语言 12

二、数学原理 13

十进制转二进制: 13

十进制转八进制: 13

十进制转十六进制: 14

二进制转十进制: 14

二进制转八进制: 14

二进制转十六进制: 15

八进制转十进制: 15

八进制转十六进制: 16

十六进制转二进制: 16

十六进制转八进制: 16

三、附:源代码 17

测试结果 22

参考文献 25

四、小结 26

致谢 26

一、转换概述

1、需求分析

进制数制是人们利用符号进行计数的科学方法。数制有很多种,在计算机中常用的数制有:十进制,二进制、八进制和十六进制。十六进制数有两个基本特点:它由十六个字符0~9以及A,B,C,D,E,F组成(它们分别表示十进制数0~15),十六进制数运算规律是逢十六进一。

要求:

输入一个十进制数N,将它转换成R进制数输出,并可以进行逆转换。

输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2=R=16,R10)。

为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。

界面友好。

2、概要设计

数制转换器程序是要求任意两种数间的相互转化,本次课程设计以任意进制间转换为中心实现二进制、八进制、十进制、十六进制、十八进制之间的相互转化。对输入的任意进制的数字进行转换,实现常见进制间的转换以及用户自定义需要转换的目标进制数,这样大大提高了本程序的用途。常见的二进制、八进制、十进制、十六进制、十六进制之间的固定转换,其转换方式大同小异,从低进制数向高进制数转换进行乘数累加,反之则逐步求余,最终进行分布计算得到想要的结果,对以上思想进行扩展,使其不仅仅局限于那些常见进制间的转换,更多的应用到任意进制之间的转换。本次系统程序,主要有两大模块组成,即任意进制转换为十进制、十进制转换为任意进制,这两部分共同组成了对任意进制数的转换的实现,通过菜单选择,让用户实现自己想要的结果,同时也在程序的简洁上有所压减,达到简洁的应用程序实现相对较复杂的功能。最后打印输出结果,清屏执行下次任务。

该程序包括七个子函数模块,其中菜单函数模块定义为整型,其余字符转换函数处理模块都根据函数所需定义数据类型。数制转换器处理系统中用数组来储存处十进制以外的数,将一个指定进制的数,从低到低高一位一位取出,并计算出每位的十进制值,然后乘以其数基的特定幂指数,得出这一位数的十进制值,将所有各位的十进制值相加得出这个数的十进制值,然后再将该十进制数转换为指定数制的数,此过程采用求余法进行,用这个十进制数作为被除数,用指定的数基作除数,连续求余,得出的余数依由个位到十位等的顺序组成新数,即得指定数制的数。

(1)逻辑设计如图所示:

图2.1

程序中各函数简单说明见如表1、1函数说明所示:

表2.1

返回值

函数名

参数表

函数说明

int

main

void

主函数

void

intANY_ten()

intx,intnum

任意进制转换为十进制

void

Intten_ANY()

intnum,inty

十进制转换为任意进制

void

ten_ANY()

num,2

十进制转换为二进制

void

list1()

num

进制转换菜单

void

list2()

num

主菜单

void

ANY_ch()

num,num

任意进制间的转换

3.详细设计

1.十进制转化为任意进制函数:

十进制整数num转换为任意(x)进制整数采用除x取余,逆序排列法。具体做法是:用x去除十进制整数,可以得到一个商和余数;再用x去除商,又会得到一个商和余数,如此进行,直到商为一时为止,然后把先得到的余数作为x进制数的低位有效位,后得到的余数作为x进制数的高位有效位,结构图如图3.4所示:

intANY_ten(intx,intnum)

{

inti,j=0;

ints=0;

for(i=1;num!=0;i*=x)

{

文档评论(0)

158****7198 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档