第2章 数据和表达式续9.15号

第2章 数据和表达式续9.15号

ID:44951061

大小:128.50 KB

页数:17页

时间:2019-11-05

第2章  数据和表达式续9.15号_第1页
第2章  数据和表达式续9.15号_第2页
第2章  数据和表达式续9.15号_第3页
第2章  数据和表达式续9.15号_第4页
第2章  数据和表达式续9.15号_第5页
资源描述:

《第2章 数据和表达式续9.15号》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、2.5基本运算符和表达式2.5.1基本运算符2.5.1.1算术运算符-+-*/%其中:除了模除运算符仅能用于int和char型数据外,其他运算符可以用于任何基本数据类型。应当说明的是,当除法运算符的两个操作数均为int和char型数据时,则运算的结果(即商)为一个int型值,小数部分自然丢失。另外,算术运算还存在溢出问题(参见下例)。注:除法溢出将导致程序的异常终止。#includeintmain(){inti,j;i=32767;j=i+1;cout<<"i="<

2、n';return0;}该例的预期输出应为:i=32767j=32768而实际的输出结果则为:i=32767j=-32768这是由于溢出而造成的。整数32767的二进制形式为:0111111111111111加1后变为:1000000000000000这正是-32768的二进制补码。2.5.1.2关系运算符<<=>>===!=从理论上讲,关系运算的结果应当是一个逻辑值(“真”或“假”)。而C++语言中不存在逻辑值,所以关系运算的结果或者是一个非零值(通常为1,代表逻辑真),或者是零(代表逻辑假)。由于C++关系运算的结果为一整型值

3、,所以可以将运算结果用于算术运算中。例:3<=5//结果为1(3>5)!=0//结果为0(3<5)+1//结果为22.5.1.3逻辑运算符!&&

4、

5、1.逻辑非!逻辑非也叫逻辑取反,该运算符为一元运算符。当操作数的值为零时,逻辑非运算的结果为一个非零值(通常为1);否则为零。2.逻辑与&&当两个操作数的值均不为零时,逻辑与运算的结果为一个非零值(通常为1);否则为零。3.逻辑或

6、

7、当两个操作数的值均为零时,逻辑或运算的结果为零;否则为一非零值(通常为1)。2.5.1.4位运算符位运算符是对操作数按二进制位进行处理的运算符。因此其操作

8、数只能是int或char型的数据。~&

9、^<<>>为下面介绍的方便,设有以下两个变量:unsignedcharc,d;并设它们的值分别为135和43,则它们的二进制形式为:c10000111d001010111.按位取反~按位取反运算符是一元运算符,它将其操作数逐位取反,即将0变为1;将1变为0。比如,~c的结果为01111000,即十进制的120。2.按位与&c&d的结果为00000011,即十进制的3。c10000111d00101011c&d000000113.按位或

10、c

11、d的结果为10101111,即十进制的175。c10

12、000111d00101011c

13、d101011114.按位异或^c^d的结果为10101100,即十进制的172。c10000111d00101011c^d101011005.按位左移<<运算符“<<”将其左操作数左移右操作数所规定的位数,移空的位补以0。例如:d<<1的结果为01010110,即十进制的86。而d<<1的结果为10101100,即十进制的172。可以证明,将一个整数左移n位,其结果为将该数乘以2n。所以在程序中常用按位左移快速地进行乘法运算。6.按位右移>>运算符“>>”将其左操作数右移右操作数所规定的位数,移

14、空的位补以0。例如:c>>1的结果为01000011,即十进制的67。可以证明,将一个整数右移n位,其结果为将该数整除以2n。所以在程序中常用按位右移快速地进行除法运算。注意:按位左移运算符与插入运算符同形、按位右移运算符与提取运算符同形。这种同一符号表示不同运算的现象在C++语言中非常普遍,编译器会自动根据上下文来识别不同的符号。2.5.1.5sizeof运算符sizeof运算符是一个一元运算符,它的运算结果为操作数按字节计的大小。其用法为:sizeof(type)或sizeof(var)例:sizeof(long)//结果为4

15、intk;sizeof(k)//结果为22.5.2表达式表达式是将常量、变量用运算符连起来的式子。例:3*a+4/bx1=(-b+sqr(b*b-4*a*c))/(2*a)x5任何一个表达式都有一个值,该值就是表达式中各运算符的最终运算结果。对于单一变量或单一常量这样的特例表达式,其值就是变量或常量的值。2.6赋值表达式和类型转换2.6.1赋值表达式含有赋值运算符的表达式叫做赋值表达式。其一般形式为:variable=expression可以看出,在赋值表达式中,赋值运算符的左操作数必须是一个变量,而右操作数可以是任一合法的表达式

16、。赋值表达式的值就是其右操作数的值。由于赋值运算符要求其右操作数为一个表达式,而赋值表达式是一个合法的表达式,所以可以将赋值表达式用做赋值运算符的右操作数,从而构成所谓的“串连”赋值表达式。如:i=j=3*52.6.2增量减量运算符++--增量和减

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。