第十章文件教案分析.ppt

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在内存中如何用补码形式表示呢?求负数的补码的方法是:将该数的绝对值的二进制形式,按位取反再加1。例如求-10的补码:①取-10的绝对值10;②10的绝对值的二进制形式为1010;③对1010取反得1111111111110101(一个整数占16位);④再加1得1111111111110110,见下图: 可知整数的16位中,最左面的一位是表示符号的,该位为0,表示数值为正;为1则数值为负。 下图(a) 表示有符号整型变量a的最大值(32767)。图(b) 表示无符号整型变量b的最大值(65535)。 【例】一个整数(以13为例)在存储单元中的存储情况见下图所示(假设使用的是微机上的c编译系统,如turboC、MsC)。 关于补码的知识不属于本书的范围,但学习c语言应该比学习其他高级语言对数据在内存中的表示形式有更多的了解。这样才能理解不同类型数据间转换的规律。 补充阅读材料3—— 整型数据在内存中的溢出 整型数据的溢出: 在turbo c中一个int型变量的最大允许值为32767,如果再加1,会出现什么情况? 【例】整型数据的溢出。   main( )   { int a,b;   a=32767; b=a+1; printf(%d,%d,a,b); } 运行结果为: 32767,-32768 从上图可以看到:变量a的最高位为0,后15位全为1。加1后变成第1位为1, 后面15位全为0。而它是-32768的补码形式,所以输出变量b的值为-32768。请注意:一个整型变量只能容纳-32768~32767范围内的数,无法表示大于32767的数。遇此情况就发生“溢出”, 但 运行时并不报错。它好像汽车的里程表一样,达到最大值以后,又从最小值开始计数。所以,32767加1得不到32768,而得到-32768,这可能与程序编制者的原意不同。从这里可以看到:c的用法比较灵活,往往出现副作用,而系统又不给出“出错信息”,要靠程序员的细心和经验来保证结果的正确。将变量b改成long型就可得到预期的结果32768。 补充阅读材料4—— 实型数据在内存中的存储 实型数据在内存中的存放形式 在常用的微机系统中,一个实型数据在内存中占4个字节(32位)。与整型数据的存图3.7储方式不同,实型数据是按照指数形式存储的。系统把一个实型数据分成小数部分和指数部分,分别存放。指数部分采用规范化的指数形式。实数 3.14159 在内存中的存放形式可以用图示意。 上图中是用十进制数来示意的,实际上在计算机中是用二进制数来表示小数部分以及用2的幂次来表示指数部分的。在4个字节(32位)中,究竟用多少位来表示小数部分,多少位来表示指数部分,标准C并无具体规定,由各C编译系统自定。不少c编译系统以24位表示小数部分(包括符号),以8位表示指数部分(包括指数的符号)。小数部分占的位(bit)数愈多,数的有效数字愈多,精度愈高。指数部分占的位数愈多,则能表示的数值范围愈大。 实型数据的舍入误差 由于实型变量是由有限的存储单元组成的,因此能提供的有效数字总是有限的,在有效位以外的数字将被舍去。由此可能会产生一些误差。例如,a 加 20的结果显然应该比a大。请分析下面的程序: 【例】实型数据的舍入误差。 main( )   { float a,b;   a = 123456,789e5;   b = a + 20 ;   printf(%f,b);   } * 第 十 章 文件 10.1 文件类型和文件指针 10.1.1 文件类型概述 1.ASCII文件和二进制文件 C语言中,数据有两种存储方式: 数据由一个一个字符组成的,在文件存储区中,每一个字 节存放一个ASCII码,按这种编码方式形成的文件在C语 言中称为“ASCII”文件或“文本”文件或“字符流”文件; 存储在文件中的数据一律以二进制编码的形式存储,一个字 节不对应一个字符,这种编码方式形成的文件称为“二进制” 文件。0011001152 51 50 若存入二进制文件,它只占两个字节,字节中的值就是234的二进制值: 1110101

您可能关注的文档

文档评论(0)

阿里山的姑娘 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档