常数和数据的内存布局.pptVIP

  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文档。上传文档
查看更多
四、常数和数据的内存布局 五、sizeof 运算符 六、变 量 四、常数和数据的内存布局 文字常数是用若干字符序列构成的原始数据,简称为常 数。常数具有三个基本特点: 1. 常数的类型; 2. 确定的值; 3. 常数不具备地址属性(字符串常数例外); 常数是一个可以在程序中作为值的一个数或若干有效字 符。 常数是在程序中无须进行定义就可以直接使用的立即 数。常数是不能修改的最简单的右值,用于初始化同类型的 变量。 文字常数分为四种: 1. 实型常数; 2. 整型常数; 3. 字符常数; 4. 字符串常数; 常数是C/C++处理数据的可理解的原始材料,是二进制 数等价的源头处的文本表示。 内存的数据状况是二进制的,数据的原始状况或初始值 通过常数确定。 (1)实型常数和内存布局 a. 实型数就是浮点型数。 浮点数是有符号的,由关键字 float、double和long double细分为单精度、双精度和长双精度三类。实型常数是 一个有符号的十进制实数。实型常数的表示有两种形式:一 是小数表示法,又称一般表示法;另一种为科学表示法或指 数表示法。 小数表示法由必不可少的小数点和数字构成,格式为: [ 数字序列 ] . 数字序列[ 后缀 ] 整数部分 小数部分 指数表示法e之前必须有数字e之后数字必须为整数,格式 为: [数字序列] . [ 数字序列 ]e 数字序列[ 后缀 ] 尾数部分 指数部分 数字序列由数字 0123456789 组成,前面可冠以+,- 号,实型常数除非前面加有一个负号,否则是一个正数。 数字序列前的正号通常省略。方括号[ ] 中包括的内容 表示可省略的部分。实数后缀为字母f, F, l, L之一。 没有后缀的实型常数具有缺省类型double。如果有f或F 后缀,该常数的类型为float;如果有l或L后缀,其类型为 long double。 scanf 函数读取数据时不添加后缀。 printf 函数也不保留后缀。后缀用于鉴别常数的确切类 型。 可以省略小数点之前的数字.75 (该值的整数部分),或 小数点之后的数字10.(小数部分),但不能都省略。 指数表示法尾数部分与指数部分构成,以10为底的幂 次来确定数据的值。 如: 尾数为一个字符序列后带小数点再带上小数部分的可选 数字序列。当包括一个指数时可以省去小数点175e-2。 可以省略指数表示法的整数部分.0075e2,实型常数例 子如下: float型: 10.f,1.575E1f ,2500E-6F; double型: 0.75 ,-0.0025,-2.5e-3; long double型: .0025L,25E-4l, 1575e-3l ,3.e5L; 下面的初始化定义语句表示了浮点变量和相应常数的严 格匹配: float f = 1.575E1f; double d = 0.75; long double xd = 3.e5L; b. 浮点数的内存表示 float型数据占32个bit, double型数据占64位,采用阶 码或指数n和尾数m的形式来确定数值的转换: 单精度浮点数 双精度浮点数 最高位一般作为浮点数 的符号位用于鉴别其正负。 阶码中有一个位则作为阶码的符号位简称阶符,浮点数 的具体细节随机器略有变化。 单精度浮点数中最低的23位用来表示尾数m,中间的8 位表示阶码或指数n,8位数的临界值(去掉一个符号位)微软 的编译器定为27=128; 双精度浮点数中最低的52位用来表示尾数m,中间的11位表示阶码或指数n,11位数的临界值微软的编译器定为210=1024,尾数m的范围介于0.5和1.0之间,由此浮点数大约的极限范围为:

文档评论(0)

38号店铺 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档