C语言实型数据的编码和存储.pdfVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言实型数据的编码和存储

C 语言实型数据的编码和存储 周恒忠 (皖西学院计算机科学与技术系,安徽 六安 237012 ) 摘 要: C 语言数据类型丰富,而数据类型的确定在程序设计 中又至关重要,有必要对各种类型的数据进行深入细致的研究。在 Turbo C 2.0 中,实型数据包括float 型、double 型和long double 型三 种,编码长度分别为4B 、8B 和10B,从左至右,第一位为数据的符 号位,接下来为指数的偏码,位数分别为8b、11b 和15b,剩余部分 为尾数的编码。存储时以字节为单位将编码逆序存放。通过转换公式 可以轻松地实现数值与编码之间的转换,在实验的基础上归纳出了实 型数据的相关属性。 关键词:C 语言;实型;编码;存储。 1 引 言 数据类型是程序设计语言的重要概念,在各种 C 语言的相关资 料中,对于实型数据的介绍不如字符型数据和整型数据详细,且说法 [3][4] 不一,甚至存在错误,特别是其编码和存储。笔者经过实验 和研 究,归纳出在Turbo C 2.0 环境中float 型、double 型和long double 型 三种实型数据的编码方式和存储形式,供 C 语言教学和程序设计时 参考。 2 实型数据的编码 2.1 float 型数据编码 float 型数据码长四个字节32 位,四个字节分别记为B1 ,B2 , B3 和B4 ,32 个位分别记为b ,b ,…,b 。其中,b 为符号位,0 1 2 32 1 表示正数,1 表示负数。b2 至b9 为指数的偏码,偏值为 127。b10~b32 为尾数编码,分别表示2-1,2-2 ,…,2-23 各位上的数码。float 型数据 的编码方式如下图所示。 符号位 B1 B2 B3 B4 指数(8 位偏码) 尾数(23 位) [1] [2] float 型数与编码的关系由如下公式 表示 f=±(1+a) •2p 2-1 其中:f 为一个单精度实型数,一般以十进制表示,符号由首位b1 确 定,p 为指数,其值为 8 位无符号数与偏值 127 的差。a 为尾数, a=a 2-1+a 2-2+ …+a 2-23 ,其中,a =0 或1 (i=1 ,2 ,…,23 )。利用公 1 2 23 i 式2-1 可以实现数值与编码的转换。 公式2-1 的几种例外情况: 1、指数编码全部是1,而尾数编码全部为0 时,表示±∞; 2 、指数编码全部是 1,而尾数编码不全为 0 时,表示一个无效 数字; 3、指数编码全部是0,而尾数编码不全为0 时,f=±a •2p+1 ; 4 、所有编码全部为0 时,表示数0 。 2.1.1 由数值f 确定其编码 先由p 的值确定指数编码。当f ≥2 时,将f 连续被2 除,直到 商a 满足2a ≥1,p 的值为除法运算的次数;当f 1 时,将f 连续被2 乘,直到积a 满足2a ≥1,p 的值为负数,其绝对值为乘法运算的次 数。将无符号数127+ p 转换为8 位二进制码,即为指数的编码。 再由a 的值确定尾数编码。由于a= a 2-1+…+a 2-23 ,其中 1a ≥0 。

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档