欢迎来到天天文库
浏览记录
ID:38811254
大小:445.09 KB
页数:53页
时间:2019-06-19
《零点起飞学C之数据运算的核心——运算符x》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章数据运算的核心——运算符运算符就是具有运算功能的符号,它指明对操作数进行怎样的运算。程序的编写就是对这些运算符的反复、多样的运用过程。本章将详细地讲解这些运算符和其运用方法。学习本章,读者可以掌握基本的数据处理方式。4.1加减乘除的运算——算术运算符算数运算符是基本的运算符号,用于各种数值运算中。它包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(––)共7种。在开始讲解前,首先来了解一个概念。运算符按操作数的个数分为:只含一个操作数的单目运算符;含两个操作数的双目运算符;含三个操作数的三目运算符;含有三个以上操作数的多目运算符。
2、1.加法运算加法运算用“+”表示,需要两个操作数,属于双目运算符。格式如下所示。operator1+operator2例如:x+y,1+2,x+1等。有时,“+”也可以作为单目运算符,放在操作数的左边,可以称作“正运算”。格式如下所示。+operator例如:+x,+1,x=+y等。这时它实际上相当于1*operator。2.减法运算减法运算用“–”表示,需要两个操作数,属于双目运算符。格式如下所示。operator1-operator2例如:x–y,1–2,x–1等。有时,“–”也可以作为单目运算符,放在操作数的左边,可以称作“负运算”。格式如下所示。-operator例
3、如:–x,–1,x=–y等。这时它实际上相当于(–1)*operator,即对原数求负。3.乘法运算乘法运算用“*”表示,需要两个操作数,属于双目运算符。格式如下所示。operator1*operator2例如:x*y,1*2等。4.除法运算除法运算用“/”表示,需要两个操作数,属于双目运算符。格式如下所示。operator1/operator2例如:x/y,1/2等。除法运算比较复杂,根据除数、被除数,以及保存结果的变量类型的不同,除法可以完成整除和非整除两种运算。假设有如下除法运算:x=a/b,则有下列几种运算情况。x为整型,则无论a和b为什么类型,结果都是整除运算。这
4、实际上是由保存结果时的类型转换引起的截断造成的。结果是整除计算的结果,而实际进行的是整除还是非整除,要取决于后面讲到的类型提升的结果。x为浮点型,则只要a和b中至少一个为浮点型,结果就是非整除,这是由类型提升引起的。实际进行的也是非整除运算。x为浮点型,a和b都是整型,结果为整除运算。实际进行的也是整除运算。注意:有些算术的结果是未定义的,这由两方面原因造成:首先是由数学特性造成,如除数为0;其次是计算机中数据类型表示范围有限造成,如16位整型的范围只能是–32767~32768。【示例4-1】除法运算的演示代码。分析:该示例定义浮点变量f和整型变量i,对其进行除法运算,
5、分别设置了不同的数据类型。对于f,第1次运算中,除数与被除数都是整型,故是整除。后3次运算中,至少一个为浮点型,进行的是非整除运算。对于i,进行的都是整除运算。最后4条语句是不赋值,直接输出结果。5.模运算模运算也叫求余运算,用“%”表示,需要两个操作数,属于双目运算符,计算operator1整除operator2后的余数。格式如下所示。operator1%operator2模运算的操作数只能是以整型为基类型的数据类型,如整型、逻辑型、字符型、短整型、常整型,以及对应的无符号型等。计算结果为整型,在0~(operator2-1)范围内。如果两个操作数中只有一个是负数,则结果
6、依赖于计算机是随分子还是分母的符号。若随分子,则向0一侧取整;若随分母,则向负无穷一侧取整。因此,21%–5的结果可能是1,也可能是–4。除运算也同样有这个问题,21/–5的结果可能是–4或–5。C++中的模运算和除运算都是随分子而定。【示例4-2】演示C++中除法和模运算中负号对结果影响的规律,代码如下:6.自增和自减运算“++”和“––”的性质更像是语句。因为它完成的是复合操作,既有计算,又有赋值。因此,本书将它们放在了第6章讲语句时再讲。“+”、“–”和“*”运算符也可用于指针类型,将在第7章讲解。在双目运算中,如果两个操作数的类型不一致,则会在计算前进行类型提升。即
7、精度低的类型向精度高的类型提升,范围低的类型向范围高的类型提升。提升后的类型即为计算结果的类型。在示例4-1的语句“f=4.0/8;”中,4.0是浮点型,8是整型。所以在计算前,系统会先将8提升为浮点型再和4.0作除法运算。4.2是是非非的运算——逻辑运算符逻辑运算符是作用在逻辑型上的运算,有与(&&)、或(
8、
9、)、非(!)3种。逻辑与和逻辑或需要两个操作数,是双目运算;逻辑非只需一个操作数,是单目运算。C++中并没有提供专门的逻辑类型,而是借用其他类型来表示,如整型、浮点型等。因此,逻辑运算符也可作用于这些类型。
此文档下载收益归作者所有