数字逻辑电路设计及应用.pdf

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

数字逻辑电路设计及应用

C程序设计报告(1)

[问题]:

设计一个C程序实现随意十进制数到二进制数的变换,二进制精度为11

位。

[思路]:

1.十进制数转二进制数对整数和小数的办理时不同样的。因此设计程序时,

也应当对读入的整数和小数的数据分开办理。(分开的方法能够先直接对浮点

数强迫种类变换,即可获得整数部分,再用浮点数减整数部分,即可获得小数

部分)。

2.关于整数部分,采纳的是“除2法”(不知道是否是这个名字)。即,

每次将该数除以2,获得的余数作为该位的二进制数,商作为下一次的除数,依此

类推,直到商为1或0为止。

3.关于小数部分,采纳的是“乘2法”(依旧不知道是否是这个名字)。即,

每次将小数部分乘2,获得的整数部分即为该位的二进制数,小数部分为下一次

的乘数。依此类推,这样做下去是一个无穷不循环的小数,因此一般会要求二进

制数中小数的精度,此题目要求的是11位。

4.在实质程序设计过程中,我发现了这样一个问题,当小数部分二进制码采

纳浮点型数据时,独自输出正确无误,但与整形的整数部分二进制码联合在一

起后,最后3位老是不正确的,思疑是在相加的过程中产生了“大数吃小数”的

问题。依据一般思想,此时应提升精度,采纳longdouble型变量,可是我采纳

的编译器是采纳WindowsC的运转库(MSC编译器)的MinGW,其对printf函

数不支持longdouble型。无奈之下,我只好把小数部分存为一个11位长的数组,

再对其输出。

[流程]:

[程序]:

1/4

1/4

/*****************************************************************

***/*thisisaprogramtotransformdecimalnuberstobinarynubers.

/*HuangBohao

/*将小数部分用数组形式储存,防止了整数部分与小数部分相加而出现的/*

大数吃小数的状况

*****************************************************************

***/#include

intInteger2Binary(int

integer);

,BinaryInt);

for(i=0;i11;i++)

}

/*****************************************************************

***/*functionname:Integer2Binary

/*inputparameter:intinteger(integerwaitingtobetransformed)/*output

parameter:intoutput(transformedinteger)

*****************************************************************

***/intInteger2Binary(intinteger)

{

intB,Y,output,flag;//B被除数,Y为余数,output为输出数据,flag为地点标

志位B=integer;

flag=1;

文档评论(0)

135****5548 + 关注
官方认证
内容提供者

各类考试卷、真题卷

认证主体社旗县兴中文具店(个体工商户)
IP属地河南
统一社会信用代码/组织机构代码
92411327MAD627N96D

1亿VIP精品文档

相关文档