案例六十进制数与二进制数的转换器.ppt

案例六十进制数与二进制数的转换器.ppt

ID:52126151

大小:451.50 KB

页数:18页

时间:2020-04-01

案例六十进制数与二进制数的转换器.ppt_第1页
案例六十进制数与二进制数的转换器.ppt_第2页
案例六十进制数与二进制数的转换器.ppt_第3页
案例六十进制数与二进制数的转换器.ppt_第4页
案例六十进制数与二进制数的转换器.ppt_第5页
资源描述:

《案例六十进制数与二进制数的转换器.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、案例六十进制数与二进制数的转换器本案例知识要点循环语句的使用函数的嵌套调用字符数组的使用第页共18页一、案例需求案例描述在C++语言中,VisualC++开发环境只提供了十进制向八进制或十六进制转换的功能,而并没有提供十进制转换为二进制的功能。试编写一个程序,要求用户在屏幕上输入一个带小数的十进制数后,计算机给出相应的二进制数。案例效果图十进制数与二进制数的转换器案例效果如图所示。第页共18页运行效果第页共18页功能说明程序开始运行后,在屏幕上给出提示。用户按照提示输入一个十进制数,可以包括整数部分和小数部分。程

2、序运行结束,计算机给出对应的二进制数。第页共18页二、案例分析十进制数转换成二进制数时,必须将十进制数的整数部分和小数部分分开转换,然后再将转换后的二进制数的整数部分和小数部分结合即可。十进制数整数部分转换时,采用除基取余法,直到商为零。方法为:将给定的十进制数除以基数,得到一个商数和余数,再将得到的商数除以基数,又得到一个商数和余数。继续这一过程,直到商数为零为止。在此过程中,每次得到的余数就是该进制数中各位数字。其中,最先得到的余数为最低有效位,最后得到的余数为最高有效位。例如,将十进制数254转换成二进制数

3、的过程如下:第页共18页第页共18页所以,254D=11111110B。十进制数小数部分转换时,采用乘基取整法,直到小数部分为零或达到精度要求为止。方法为:用基乘以给定的十进制数的纯小数部分,取出乘积的整数部分,再用余下的纯小数部分乘以基,取出乘积的整数部分。继续这一过程,直到余下的纯小数部分为0或达到精度要求为止。最后把每次得到的整数部分从上到下依次取出,从左到右排列,得到对应的二进制数、八进制数、十六进制数。例如,将十进制数0.6875转换成二进制数的过程如下:第页共18页小数部分为0,转换结束。所以,0.6

4、875D=0.1011B。二者合成为:254.6875D=11111110.1011B。在转换过程中,整数部分是一定可以完全转换的;但是在小数部分进行转换时,有些小数是不能完全转换的。例如,十进制小数“0.2”转换为二进制时,不管乘了多少次的基数2,都不会只得到整数。一般遇到这种情况,在手动进行计算时只要取小数点后6~8位即可。本案例采用两个字符数组,分别对输入的十进制数的整数部分和小数部分进行处理。第页共18页三、案例设计函数的设计根据上述的设计思想,本案例设计了3个函数,函数DtoB()用于将十进制数的整数部

5、分和小数部分分开;函数DtoBI()用于将十进制数的整数部分转换成二进制的整数;函数DtoBF()用于将十进制数的小数部分转换为二进制的小数。(1)将输入数的整数部分和小数部分分开的函数DtoB()定义DtoB()函数的类型为void型,定义双精度变量num作为形参接收主函数调用函数时传递的十进制原数据。在函数中,将用户输入的十进制数使用强制类型转换得到整数部分,原数减去整数部分即可得到小数部分,定义整型变量inum用于存储原数据的整型部分,定义双精度变量fnum用于存储原数据中的小数部分。函数中嵌套调用了Dto

6、BI(inum)函数和DtoBF(fnum)函数,用于将整数和小数部分分别转换为对应的二进制数。第页共18页将十进制的整数部分转换为二进制的整数的函数DtoBI()定义DtoBI()函数的类型为void型,定义整型变量inum作为形参接收DtoB()函数调用时传递的实参值。在函数中,定义一个包含50个字符的整型数组str[50],语句str[i]=inum%2用于将得到的余数存储在该整型数组中,语句bin[ij1]=str[j]+48用于将存储在数组str中的反序余数再次反序,从而得到正序数据并存储在整型数组

7、bin中。第页共18页将十进制的小数部分转换为二进制的小数的函数DtoBF()定义DtoBF()函数的类型为void型,定义双精度变量fnum作为形参接收DtoB()函数调用时传递的实参值。该函数中使用的语句与DtoBI()函数的语句很类似,为了避免重复,可以使用字符串拷贝函数strcpy()完成赋值。使用语句int(fnum)+48可以将整型数据转换成字符型。整型变量i的最大值设为9,用于控制循环次数,设定小数的保留位数。第页共18页主程序设计主程序流程如图所示。第页共18页第页共18页第页共18页第页共18页

8、第页共18页第页共18页五、案例总结与提高案例总结本案例采用字符数组实现了十进制数向二进制数的转换。对于一个既包含整数部分又包含小数部分的十进制数,需要分开后分别转换。使用字符数组而不使用整型数组的理由是字符数组以“”作为结束符,容易处理,但字符数字和整型数字之间的ASCII码相差48,需要注意。案例提高本案例只能进行十进制数向二进制数的转换,请读者修改本案例,实现二

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。