3–数据类型运算符和表达式.ppt

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

C语言程序设计 主讲教师:杜洪波 目 录 各种进制之间的转换 二进制、八进制、十六进制转换成十进制 方法:按权相加 字节和位 内存以字节为单元组成 每个字节有一个地址 一个字节一般由8个二进制位组成 每个二进位的值是0或1 数值的表示方法——原码、反码和补码 原码:最高位为符号位,其余各位为数值本身的绝对值 反码: 正数:反码与原码相同 负数:符号位为1,其余位对原码取反 补码: 正数:原码、反码、补码相同 负数:最高位为1,其余位为原码取反,再对整个数加1 为什么用补码表示? 19 - 25 = 19 +(- 25) (19)10=2 (-25) 10 = 2 +----------------- -------(-6)? 引入补码之后符号位也进入了运算,不用再单独处理符号位 3.1 数据类型 数据类型总表 每一个变量都有一个类型,表明了为它的存储属性: 分配空间的大小; 表示的数的范围; 所能进行的运算。 3.3整型数据 整型数据的标识符是int。整型数据根据其占用的 内存字节数不同,可加限定词: short(短整型),int ,long(长整型), short≤int≤long 可用sizeof(类型标识符)测量 unsigned short (无符号短整型), unsigned int (无符号整型), unsigned long (无符号长整型), 其中short和long的引入是为满足实际要求的不同长度的整数, 而经unsigned限定词限定的整数总是正的。 3.4 浮点型数据 浮点数(即实数)分为单精度(float)和双精度(double) 类型,二者的区别在于所占存储位的多少, 从而决定了其取值范围。 通常以32位(bits)来存储单精度实数型数据,以64位来 存储双精度实型数据。 【例3.2】实型变量的有效数字。 main( ) { double a; a=6.152367864359046178294901; printf(\n%25.20f,a); } 输出结果为: 6.15236786435904648000 在这个例子中,a被赋值了一个有效位数为25位的数字。但由于a是double类型的,所以a只能接收15~16位有效数字。在printf语句中,我们使用了%25.20f这样的格式符号,这指示printf语句在输出a时总长度应为25位,小数点位数占20位。输出的结果显然显示了25位数,但只有6.152367864359046共16位有效数字被正确显示出来,后面的数字是一些无效的数值。这就表明double型的数据只接收15~16位有效数字。 3.5 字符类型 整型、实型都是数值型,是大家比较熟悉的。 除数值型外,还有一类数据是计算机经常处理的数据,这就是字符型。 字符型数据包含的是一个字符集。一般用的是ASCII码字符集见附录A(p249) 。 字符集中的每一个字符都有一个序号,称为ASCII码。 ASCII码大的字符比ASCII码小的字符值大。 字符类型的标识符是char。 【例3.3】将小写字母转化为大写字母。 main( ) {char c1,c2; c1=x;c2=y; c1=c1?32; c2=c2?32; printf(\n%c,%c,x1,x2); } 程序的输出结果是:X,Y 这个例子是将小写字母转化为大写字母的程序。我们在对ASCII码字符表进行观察后会发现,大小写对应的字母,它们之间的ASCII码正好相差32。利用这个特性和上一个特性,我们可以编写出非常简单的大小写字母转换程序。 使用自增、自减运算符的注意事项 ② 对于形如a+++b的表达式,C语言的编译系统在处理时尽可能多的自左至右将若干个字符结合成一个运算符。因此,a+++b被理解为(a++)+b,而不是a+(++b)。为避免产生误解,建议将此表达式写成 (a++)+b的形式。 例如,x=i+++i+++i++;应被理解为z=(i++)+(i++)+(i++); ③ 在一个表达式中,出现对同一个变量的多次自增、自减运算时,有的编译系统按从左到右的次序处理,而有些系统一次性的处理这些运算是从右到左(如

文档评论(0)

shaoye348 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档