




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1C+语言程序设计第二章 数据类型、运算符与表达式 前一页 下一页 休息2本章主要内容l计算机中信息表示计算机中信息表示lC+基本数据类型基本数据类型l基本运算符和表达式基本运算符和表达式l数据的混合运算与类型轮换数据的混合运算与类型轮换l简单输入输出简单输入输出3预备知识:计算机中信息的表示计算机中的进制计算机中的进制计算机中的码制计算机中的码制计算机中数的表示计算机中数的表示计算机中字符的表示计算机中字符的表示4计算机中数值的表示二进制l计算机中直接使用十进制有一定的计算机中直接使用十进制有一定的困难困难l计算机中普遍使用二进制,辅助使计算机中普遍使用二进制,辅助使用八、十六进制用八、十六
2、进制l所有进制均由十进制演变而来所有进制均由十进制演变而来l不同进制之间存在转换问题不同进制之间存在转换问题 前一页 下一页 前一页 下一页 休息5小小数数位位数数整整数数位位数数 - m -n 10kN1nmiii 101231091031081091019 .1983 例例:进位计数制计算机中的进制l十进制数有如下特点:十进制数有如下特点:只使用只使用10个符号,个符号,09逢十进一逢十进一一个数的值等于各位的权与该位数码的乘积之和一个数的值等于各位的权与该位数码的乘积之和 前一页 下一页 休息6小数位数小数位数整数位数整数位数 - m -n 1 nmiiiRkN进位计数制计算机中的进制l
3、R进制数有如下特点:进制数有如下特点:只使用只使用R个符号,个符号,0 R-1逢逢R进一进一一个数的值等于各位的权与该位数码的乘一个数的值等于各位的权与该位数码的乘积之和。积之和。1012322121212021)1 .1011( 例:例:l计算机中常用进制:二、八、十六进制计算机中常用进制:二、八、十六进制 前一页 下一页 休息7计算机中的进制二进制l二进制是计算机中最常用的进制二进制是计算机中最常用的进制 l二进制数有如下特点:二进制数有如下特点:数码符号少,便于用电子元件来表示数码符号少,便于用电子元件来表示 运算规则简单,易于进行高速运算运算规则简单,易于进行高速运算 加法:加法:1+
4、0 = 0+1 = 1 0+0 = 0 1+1 = 0(进位)(进位)减法:减法:1-0 = 1 1-1 = 0 0-0 = 0 0-1 = 1(借位)(借位) 乘法:乘法:11 = 1 10 = 01 = 00 = 0 除法:除法:0 1 = 0 1 1 = 1 用用1表示表示“真真”,0表示表示“假假”时可以把逻辑与数时可以把逻辑与数值处理相统一值处理相统一例:例: b = ( x=y ) + 4 前一页 下一页 休息811.10101.110 000.011101101101011001101101二进制二进制数的缺点:二进制数的缺点:数值位数太多,容易出错数值位数太多,容易出错二进制计
5、算实例:二进制计算实例:计算机中的进制 前一页 下一页 休息9其它进制l使用八进制和十六进制的原因:使用八进制和十六进制的原因:二进制数太长,书写、阅读、记忆均不便二进制数太长,书写、阅读、记忆均不便八进制和十六进制与二进制之间的转换直观、方便八进制和十六进制与二进制之间的转换直观、方便l八进制八进制逢八进一逢八进一 l十六进制逢十六进一十六进制逢十六进一用用A,B,C,D,E,F(可小写)代表(可小写)代表10以上的数以上的数47.10631.75 004.0278.78485.896 DFA.101计算机中的进制10十进制十进制二进制二进制八进制八进制十六进制十六进制00001111210
6、2231133410044510155611066711177810001089100111910101012A11101113B12110014C13110115D14111016E15111117F16100002010几种进制的对照 前一页 下一页 前一页 下一页 休息11进制转换l不同进制的表示:不同进制的表示:括号数字下标括号数字下标例:例:(173)8表示八进制数表示八进制数173数字后面加大写字母数字后面加大写字母B二进制二进制D十进制十进制Q八进制八进制H十六进制十六进制例:例:173Q表示八进制数表示八进制数173 5FH 表示十六进制数表示十六进制数5F计算机中的进制 前一
7、页 下一页 休息12 10101161010128103210122123.937515/1611112161516111677B.F123.6255/83566485838781173.57.6251/801/2124212021212121111.101 进制转换lR进制转换成十进制进制转换成十进制展开位权多项式,按十进制规则计算展开位权多项式,按十进制规则计算 计算机中的进制 前一页 下一页 休息13例例:(11)10=( )21011(123)10= ( )8 = ( )161737B 115210 2 余数余数 1 1 0 1 12315108 余数余数 3 7 1 1237016
8、余数余数 11 7 进制转换l十进制转换成十进制转换成R进制进制整数转换整数转换除除R取余法(倒过来)取余法(倒过来)计算机中的进制 前一页 下一页 休息14一般实数转换一般实数转换例例:(0.6875)10=( )20.1011 0.6875 0.375 0.75 0.5 0 2 整数整数 1 0 1 1(0.31)10= ( )8 = ( )16 0.310.480.848 整数整数 2 3 0.310.960.3616 整数整数 4 F 0.230.4F 小数与整数部分分别转换小数与整数部分分别转换,合写在一起即可合写在一起即可小数转换小数转换乘乘R取整法取整法 进制转换计算机中的进制
9、前一页 下一页 休息15ED.5A355.264例例: (11101101.0101101 )2=( )8 = ( )16 0 1 1 , 1 0 1, 1 0 1 . 0 1 0, 1 1 0, 1 0 0 ( 8=23) 3 5 5 . 2 6 4 1 1 1 0 , 1 1 0 1 . 0 1 0 1 , 1 0 1 0 ( 16=24) E D . 5 A 进制转换l二进制转换为八进制或十六进制二进制转换为八进制或十六进制小数点为中心向左右三位(或四位)为一小数点为中心向左右三位(或四位)为一组分别转换组分别转换头尾不足三位(或四位)时,用头尾不足三位(或四位)时,用0补上。补上。计算
10、机中的进制 前一页 下一页 休息16 1 2 3 . 7 001 010 011 . 111例例: 123.7O = 1010011.111B4F.3H = 1001111.0011B 4 F . 3 0100 1111 . 0011 进制转换l八进制或十六进制转换为二进制八进制或十六进制转换为二进制将每个数字分别转换将每个数字分别转换计算机中的进制17计算机中符号的表示码制l正负号必须用二进制表示计算机才能识别正负号必须用二进制表示计算机才能识别l真值真值带正负号的数的二进制表示带正负号的数的二进制表示例:例:15 1111-15 -1111l机器数机器数带符号的数在机器中的表示带符号的数在
11、机器中的表示l根据机器数转换规则的不同,数值数据有多根据机器数转换规则的不同,数值数据有多种编码方式,一般称为种编码方式,一般称为码码 前一页 下一页 前一页 下一页 休息18原码l原码是最简单的机器数编码原码是最简单的机器数编码l转换规则:转换规则:最高位为符号位,最高位为符号位,0表示正号,表示正号,1表示负号。表示负号。数值部分保持不变数值部分保持不变 l实例:(为简单起见,设字长为实例:(为简单起见,设字长为8位。)位。)1111原原=00001111 -1111原原=10001111 l优点:优点:简单、直观简单、直观l缺点:缺点:减法运算较繁,不便于减法运算较繁,不便于CPU的运算
12、处理的运算处理有有+0( 00000000 )和和 -0( 100000000 )带符号数的表示 前一页 下一页 休息19补码l补码是最常用的编码之一补码是最常用的编码之一l补码求取规则补码求取规则最高位为符号位,最高位为符号位,0为正,为正,1为负数为负数正数补码数值不变,负数补码将真值求反正数补码数值不变,负数补码将真值求反加一加一例:例:1111补补 =00001111 -1111补补=-0001111补补=11110000+1=11110001 带符号数的表示 前一页 下一页 休息20补码l求补码的方法求补码的方法由补码求真值:由补码求真值:先由最高位判断符号先由最高位判断符号正数数值
13、不变,负数求反加一。正数数值不变,负数求反加一。 例:例:00001111真真 = 1111 11110001真真= -(0001110+1) = -1111 由一数补码求其负数的补码由一数补码求其负数的补码 :连符号一起求反加一连符号一起求反加一 例:例:X = 1111 -X补补 = -00001111补补 = 11110001 X = -1111 -X补补 = -11110001补补= 00001111 带符号数的表示 前一页 下一页 休息21补码l补码运算规则:补码运算规则:符号代入一起计算,根据首位结果判断符号。符号代入一起计算,根据首位结果判断符号。减法转为加法进行运算减法转为加法
14、进行运算 例例:X=-1101 Y=110 求:求:X+Y= 解解: X补补=11110011 Y补补=00000110 X补补 11110011 Y补补 00000110 XY补补 00 111111-0000111 表示结果为负表示结果为负真值求反加一真值求反加一带符号数的表示 前一页 下一页 休息22补码解解: X补补=00001101 Y补补=00000110 -Y补补=11111010 111 减法转为加法运算例:减法转为加法运算例:X=1101 Y=110 求:求:X-Y X补补 00001101 -Y补补 11111010 X-Y补补 11 100001超过字长溢出超过字长溢出0
15、带符号数的表示 前一页 下一页 休息23计算机中数的表示 l计算机中的数值信息分整数与实数两计算机中的数值信息分整数与实数两种种l整数与实数在计算机中的表示及存储整数与实数在计算机中的表示及存储方式完全不同方式完全不同整数:说小数点固定隐含在个位数的右面,整数:说小数点固定隐含在个位数的右面,所以整数也叫做所以整数也叫做“定点数定点数”实数:小数点位置不固定称为实数:小数点位置不固定称为“浮点数浮点数”l在在CPU中分别用定点和浮点运算器处中分别用定点和浮点运算器处理理 前一页 下一页 休息24整数的表示l整数的一般表示方法整数的一般表示方法第一位为符号位,数值部分第一位为符号位,数值部分(尾
16、数尾数)用补码用补码表示表示数符数符(1位位)尾数尾数 (n-1)位位 符号位符号位 数值部分数值部分 (n为字长为字长)计算机中数的表示 前一页 下一页 休息25整数的表示l整数分类整数分类有符号整数:有符号整数:普通带符号整数普通带符号整数存储:第一位为符号位,其余位按补码规则存放存储:第一位为符号位,其余位按补码规则存放例:例: 15 00001111-15 11110001 ( 设字长设字长8位位 )无符号整数:无符号整数:全部为正整数,没有负数全部为正整数,没有负数存储:没有符号位,全部为数值位存储:没有符号位,全部为数值位l表示范围:字长表示范围:字长 n 位位无符号数:无符号数:
17、0 2n-1一般:一般:8位:位:0255,16位:位:0 65535有符号数:有符号数:-2n-1 2n-1-1一般:一般:8位:位:-128127,16位:位:-32768 32767计算机中数的表示 前一页 下一页 休息26实数的表示l数学上的实数有两种表示形式数学上的实数有两种表示形式实数形式:实数形式:例:例:56.72、-0.00125指数形式:指数形式:例:例:0.5672102 = 5.672 101 =0.05672 10-3 -0.12510-2 = -12.510-4注意:指数形式的表示不是唯一的。注意:指数形式的表示不是唯一的。科学计数法科学计数法:指数尾数是纯小数且第
18、一位小数不为指数尾数是纯小数且第一位小数不为0的指数形式。的指数形式。例:例:56.72 0.5672102 -0.00125 -0.12510-2 计算机中数的表示 前一页 下一页 休息27实数的表示 l计算机中以指数形式中的科学计数法表示实计算机中以指数形式中的科学计数法表示实数数例:例: N= -33.5D=-10001.1B=-0.1000112101 阶符阶符阶码阶码数符数符尾数尾数 指数符号指数符号 指数指数 符号符号 数值数值 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 阶码阶码8位位 尾数尾数2
19、4位(字长位(字长32位位 )M说明:浮点法编码随使用的系统而不同说明:浮点法编码随使用的系统而不同M例:例:Pentium尾数使用原码阶码使用偏移码尾数使用原码阶码使用偏移码计算机中数的表示 前一页 下一页 休息28文字信息在计算机中的表示l西文字符用西文字符用ASCII码存放码存放C+使用扩充使用扩充ASCII码,共有码,共有256个字符,编个字符,编码从码从0255。 包括大小写英文字母及数字、标点符号和一包括大小写英文字母及数字、标点符号和一些控制字符,前些控制字符,前32个为不可见字符。个为不可见字符。 一个英文字符占一个字节一个英文字符占一个字节8位二进制编码位二进制编码例:例:A
20、编码为:编码为:01000001B41H65Da编码为:编码为: 01100001B61H97D 0编码为:编码为: 00110000B30H48D西文字符 前一页 下一页 休息29字符的编码标准ASCII码字符集 前一页 下一页 休息30文字信息在计算机中的表示l中文字符用机内码存放中文字符用机内码存放机内码由国家统一制定编码标准机内码由国家统一制定编码标准汉字编码的种类:汉字编码的种类:GB2312-80:6763个简化字汉字和个简化字汉字和682个图形符号个图形符号GBK-95: 21003个汉字,简化字繁体字个汉字,简化字繁体字+CJKGB18030-2000:超过超过27000个汉字
21、个汉字台湾标准:台湾标准:BIG5繁体字繁体字一个中文字符占两个字节,且为与英文字符一个中文字符占两个字节,且为与英文字符区别,每个字符第一位为区别,每个字符第一位为1C+一般语句不接受中文字符,仅在输出或一般语句不接受中文字符,仅在输出或字符串中可以使用字符串中可以使用中文字符31第一节 基本数据类型数据类型概述数据类型概述常量与变量常量与变量 前一页 下一页 休息32数据类型概述l数据是程序处理的对象数据是程序处理的对象l不同的数据处理方式不同不同的数据处理方式不同l数据根据使用及存储方式分成各种数据类型数据根据使用及存储方式分成各种数据类型l每种数据类型允许进行的操作不同每种数据类型允许
22、进行的操作不同l数据类型分成两大类数据类型分成两大类基本型:每种类型拥有不同的内存空间基本型:每种类型拥有不同的内存空间构造型:用于成批处理数据,由基本型构造型:用于成批处理数据,由基本型数据组成数据组成 前一页 下一页 休息33数据类型概述l说明:说明:每种类型可分成若干子类型。每种类型可分成若干子类型。各种类型用不同关键字表示。各种类型用不同关键字表示。M关键字是由系统指定用于表示特殊含义的单词,关键字是由系统指定用于表示特殊含义的单词,用户禁止使用(参见教材用户禁止使用(参见教材P6)。C的数据类型基基本本类类型型 整整型型 字字符符型型 浮浮点点型型 枚枚举举型型 构构造造类类型型 数
23、数组组类类型型 结结构构体体类类型型 共共用用体体类类型型 指指针针类类型型 空空类类型型 前一页 下一页 休息34C C的基本数据类型的基本数据类型类型类型位宽位宽字节字节数据范围数据范围布尔型布尔型bool81true(1),false( 0)字符型字符型char81-128 127整整型型short int162-32768 32767int324-214783648 214783647unsigned int3240 429467295(232-1)long int 324-2147483648 214783647unsigned long int3240 429467295(232-
24、1)实实型型float3243.4E-38 3.4E+38double6481.7E-308 1.7E+308long double6481.7E-308 1.7E+308 前一页 下一页 休息35常量与变量lC+中的常量与变量的定义与数学基本中的常量与变量的定义与数学基本相同相同l常量常量常量是在程序执行的过程中,其值不变的常量是在程序执行的过程中,其值不变的量,常为数值或字符量,常为数值或字符例:例:3.5,-12,Wel变量变量变量就是值在程序执行的过程中可变的量,变量就是值在程序执行的过程中可变的量,常用符号表示常用符号表示例:例:x 前一页 下一页 休息36C+数值常量C+中的常量l
25、C+常量根据数据类型的不同分类常量根据数据类型的不同分类l整常量:整常量:短整型和整型为默认类型短整型和整型为默认类型例:例:12, 0, -20( short ),68046,-40825( int )长整型数后加长整型数后加L( 或或l )表示:表示:例:例: 12L , -12l无符号数后加无符号数后加U ( 或或u ) :例:例:35u, 34UL,17lu允许直接使用八进制和十六进制数允许直接使用八进制和十六进制数数字前加数字前加0表示八进制数。例:表示八进制数。例: 020,数字前加数字前加0 x表示十六进制数。例:表示十六进制数。例: 0 x35 ,0XABCL程序中使用八和十六
26、进制时一般视为无符号数程序中使用八和十六进制时一般视为无符号数注意:(注意:(082,ox12,0 xagfl等都是错误的)等都是错误的) 前一页 下一页 休息37C+中的常量l浮点常量:浮点常量:一般形式:一般形式:3.1425, .15 ,-3.84指数形式:指数形式:1e-1,-12.3E3等;等;M 注意:(注意:(12,E1,12E,.E2等都是错误等都是错误的)的)l布尔型常量:布尔型常量:只有只有 false 和和 true 两个值,无定界符两个值,无定界符 前一页 下一页 休息38C+中的常量C+字符常量l字符常量:字符常量: 字符型常量是用单引号括起来的一字符型常量是用单引号
27、括起来的一 个字符。个字符。例:例: A , c , 5 字符型常量以字符型常量以ASCII码存储,占码存储,占1个字节,用个字节,用8个二进制位表示。个二进制位表示。例: A 0100 0001M错误例:错误例: AB , x123 ,0X41、0101 不可见或不能输入的字符用转义字符表示不可见或不能输入的字符用转义字符表示转义字符由转义字符由“”加一个字符或加一个字符或3个数字组成个数字组成例:例: n , 101 , 012 , x41 前一页 下一页 休息39字符形式字符形式功功 能能n换行换行t横向跳到下一个输出区横向跳到下一个输出区*反斜扛字符反斜扛字符 单引号字符单引号字符 双
28、引号字符双引号字符ddd或或0dd 8进制数对应的进制数对应的ASCII码字符码字符xhh16进制数对应的进制数对应的ASCII码字符码字符C+中的常量C+转义字符(表2.2)返回 前一页 下一页 休息40C+字符串常量l字符串常量:字符串常量是使用双引号括字符串常量:字符串常量是使用双引号括起来的字符序列。(可包括空格)起来的字符序列。(可包括空格)例:例:How do you do.、 A145x6ax6f l说明:说明:双引号中不能出现双引号、单引号、反斜线、双引号中不能出现双引号、单引号、反斜线、换行符等换行符等如果需要出现,必须使用转义字符如果需要出现,必须使用转义字符例例 good
29、 , hellon ok,表示字符串:表示字符串:good和和 hello ok 同样,程序中如表示文件路径应为:同样,程序中如表示文件路径应为: C: my Documects C+中的常量 前一页 下一页 休息41C+字符串常量l字符串存储:字符串存储:逐个字符存放,每个字符占用逐个字符存放,每个字符占用1字节,存储字节,存储相应的相应的ASCII码码n个字符时系统要分配个字符时系统要分配n+1个字节空间,因个字节空间,因为系统自动在最后加一个为系统自动在最后加一个“串终止符串终止符” 0例例:CHINAC+中的常量 C H I N A 0a 0aM注意:注意:char c; c=a;M注
30、意:注意:a a 前一页 下一页 休息42C+字符串常量l说明:说明:字符串常量可以使用继行符字符串常量可以使用继行符“”。即一个字。即一个字符串常量在一行写不下时,可以延长到若干符串常量在一行写不下时,可以延长到若干行。行。例:例:Copyright 1984 AT&T International Incorporated. All right reserved.C+中的常量 前一页 下一页 休息43C+符号常量l符号常量(标识符常量)的定义:符号常量(标识符常量)的定义:用标识符(用户自起名称)代表一个常量用标识符(用户自起名称)代表一个常量目的:增加程序可读性、通用性和方便性目的
31、:增加程序可读性、通用性和方便性l符号常量声明格式:符号常量声明格式:#define 符号常量名符号常量名 常量值常量值C+中的常量关键字用户自定名真值#define PI 3 .1415926area = PI *r * rconst 数据类型说明数据类型说明 符号常量名符号常量名=常量值常量值const double PI = 3 .1415926 前一页 下一页 休息44l符号常量例:符号常量例:(NO2.2-1) #define PI 3.14159 void main( ) float len, area, r;r = 3.5; len = 2.0 *PI * r; area = P
32、I * r * r;cout 周长周长 len n面积面积 area endl; C+中的符号常量C+中的常量 前一页 下一页 休息45C+中的变量l变量定义变量定义变量遵循变量遵循“先定义,后使用先定义,后使用”的原则的原则定义任务:指定变量名称、数据类型及存储类型定义任务:指定变量名称、数据类型及存储类型l变量命名规则变量命名规则必须遵守标识符原则必须遵守标识符原则严格区分字符大小写严格区分字符大小写不能与不能与“关键字关键字”重名重名标识符规则:标识符规则:只能使用字母、数字和下划线只能使用字母、数字和下划线首字只能是字母或下划线首字只能是字母或下划线1.标识符的最多字符个数与系统有关标
33、识符的最多字符个数与系统有关(VC+为为247) 前一页 下一页 休息46C+中的变量变量的声明(定义)l变量声明格式:变量声明格式:数据类型名数据类型名 变量名变量名1,变量名变量名2,;例例1:int a; /定义整型变量定义整型变量a float volume; /定义浮点型变量定义浮点型变量volume double x1; /定义双精度变量定义双精度变量x1 char _1B; / 定义字符变量定义字符变量_1B bool flag;/字义布尔型变量字义布尔型变量flag例例2:下列标识符中错误的是?下列标识符中错误的是?isReady _1_2A PAN. who? sp-ptro
34、3L h(var) 6str tree9_1 float 前一页 下一页 休息47C+中的变量C+变量类型l整型整型基本型:类型名:基本型:类型名:int短整型:类型名:短整型:类型名: short int或或short长整型:类型名:长整型:类型名: long int或或long无符号型:无符号型:含义:存储时最高位是数值而不是符号含义:存储时最高位是数值而不是符号类型名:类型名:unsigned分类:分类:无符号短整型,类型名:无符号短整型,类型名: unsigned short无符号长整型,类型名:无符号长整型,类型名:unsigned long 前一页 下一页 休息48C+变量类型l实
35、型实型单精度型:类型名:单精度型:类型名: float,有效位数,有效位数7位位双精度型:类型名:双精度型:类型名: double,有效位数,有效位数15位位长双精度型:类型名:长双精度型:类型名: long double ,有效位数,有效位数15位位l字符型:字符型:字符型:类型名:字符型:类型名:char有符号字符型:类型名:有符号字符型:类型名:singed char无符号字符型:类型名:无符号字符型:类型名:unsigned char M注意:注意:M有无符号仅影响转换成整型时,每一位是否处理成符号位有无符号仅影响转换成整型时,每一位是否处理成符号位M字符型变量只能存储一个字符,字符型
36、变量只能存储一个字符, C+ 没有字符串型变量没有字符串型变量C+中的变量 前一页 下一页 休息49C+变量类型l说明:说明:布尔型变量只有布尔型变量只有 false 和和 true 两个值两个值多个同类型变量可以用一个类型名定义多个同类型变量可以用一个类型名定义例:例: int a, b, A, B; 或或 int a; int b; int A; int B;不同类型变量也可在一行定义不同类型变量也可在一行定义 char D; float d;C+中的变量 前一页 下一页 休息50变量的存储l变量存储:变量存储:变量声明后系统会在内存中分配一定存储变量声明后系统会在内存中分配一定存储单元用
37、于存放变量的值单元用于存放变量的值各种类型的变量在内存中分到的字节数是固定的各种类型的变量在内存中分到的字节数是固定的变量所分空间第一个字节的地址称为变量的地址变量所分空间第一个字节的地址称为变量的地址各类型数据存储编码亦不同。各类型数据存储编码亦不同。变量名变量名 a5存储单元存储单元C+中的变量 前一页 下一页 休息51 整数按补码存放整数按补码存放00000000000000111 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1int c= -15例:例: short short int a=3数符数符11B-1
38、111B数符数符尾数尾数1515位位尾数尾数3131位,按补码规则求反加一位,按补码规则求反加一变量的存储 返回C+中的变量 前一页 下一页 休息52例:例:char c=a; 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 101100001 实数按浮点数用原码存放实数按浮点数用原码存放例:例:float f = -25.75 =-11001.11B阶符阶符数符数符阶码阶码尾数尾数 字符型按字符型按ASCII码存放码存放=-0.11001112101v注意:注意:字符数据可用字符数据可用ASCII码和整型数据进行混合
39、运算。码和整型数据进行混合运算。变量的存储C+中的变量 前一页 下一页 休息53变量的初值l变量赋初值:变量赋初值:就是指在定义变量的同时给变量一个值。就是指在定义变量的同时给变量一个值。格式:格式:变量说明变量说明 = 初值初值变量说明(初值)变量说明(初值)例:例: char c=a; bool b= true;short int a( 3 ); float f ( -71.875 ); C+中的变量 前一页 下一页 休息54存储类型存储类型说说 明明auto堆栈方式存储在动态存储区堆栈方式存储在动态存储区register存储在通用寄存器中存储在通用寄存器中extern在所有函数和程序段中
40、都可引用在所有函数和程序段中都可引用static存储在静态存储区存储在静态存储区常量与变量C+变量存储类型例例: static int net; /定义静态整型变量定义静态整型变量net 前一页 下一页 休息55C+程序实例#include / no2.2-2.cppvoid main( ) const double PI = 3.14159; float v, area, r,h; cout r; h = 3.2; area = PI * r * r; v = PI * r * r * h; cout 底面积底面积 arean圆柱体体积圆柱体体积 v endl;编译预处理主函数定义符号常量定
41、义变量输入数据常量直接赋值计算输出结果 前一页 下一页 休息56常量与变量运行结果:运行结果:请输入半径:请输入半径:2.5底面积底面积 19.635圆柱体体积圆柱体体积 62.8318C+程序实例57第二节 运算符与表达式基本运算符与表达式基本运算符与表达式算术运算符与表达式算术运算符与表达式关系运算符与表达式关系运算符与表达式逻辑运算符与表达式逻辑运算符与表达式赋值运算符与表达式赋值运算符与表达式条件运算符与表达式条件运算符与表达式逗号运算符与表达式逗号运算符与表达式C+常用库函数常用库函数 前一页 下一页 休息58基本运算符与表达式l运算符是数据处理的工具运算符是数据处理的工具l运算符和
42、运算量一起组成表达式运算符和运算量一起组成表达式l运算符基本要素运算符基本要素符号与功能符号与功能运算量数目要求:分单目、双目和三目运算量数目要求:分单目、双目和三目优先级:共优先级:共15级级结合性:分从左至右、从右至左结合性:分从左至右、从右至左 前一页 下一页 休息59运算符与表达式基本运算符与表达式lC+运算符与表达式的分类运算符与表达式的分类算术运算符与算术表达式算术运算符与算术表达式关系运算符与关系表达式关系运算符与关系表达式逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式条件运算符与条件表达式条件运算符与条件表达式位运算运算符与位运算表达式位运算运算符与位运算表达式赋值运算符与赋值表
43、达式赋值运算符与赋值表达式逗号运算符与逗号表达式逗号运算符与逗号表达式 前一页 下一页 休息60算术运算符与表达式l算术运算符算术运算符 + - * / %(取余)(取余)l优先级:优先级:*、/、%同级,比同级,比+、-高高l结合性:结合性:自左至右自左至右M注意:注意:整数相除,结果取整小数舍去整数相除,结果取整小数舍去例:例:5 / 3 = 1 3 / 5 = 0%仅用于整数,且符号与左边对象相同仅用于整数,且符号与左边对象相同例:例:5 % 3 = 2 -3 % 5 = -3 3 % -5 =3运算符与表达式 前一页 下一页 休息61自增自减运算符l格式:格式:a+或或+a 等价于等价
44、于 a = a + 1a- -或或- -a 等价于等价于 a = a 1l优先级:优先级:比比*、/高高l结合性:结合性:从右至左从右至左M注意:注意:+a或或- -a先自加先自加(减减),用新值参与计算,用新值参与计算a +或或a - -先参与计算,然后自加先参与计算,然后自加(减减)例:若例:若a = 1 则则 (+a)+3 值为值为5,a值为值为2 (a +)+3 值为值为4,a值为值为2运算符与表达式 前一页 下一页 休息62简单赋值运算符与表达式l赋值表达式一般形式:赋值表达式一般形式:变量变量 = 表达式表达式例:例: x = 10 n = y + 5l优先级优先级:倒数第二级倒数
45、第二级l结合性:结合性:从右至左从右至左l值:值:等号左边对象被赋值后的值等号左边对象被赋值后的值l类型:类型:等号左边对象的类型等号左边对象的类型运算符与表达式 前一页 下一页 休息63复合赋值运算符l有有10种复合运算符:种复合运算符:+= , -= , *= , /=, %=, = , &= , = , |= 例:例:a += 3 等价于等价于 a = a + 3a /= x 等价于等价于 a = a / 5M注意:注意:复合赋值右边为表达式时,等同于复合赋值右边为表达式时,等同于表达式有括号。表达式有括号。 例:例:x *= y+8 等价于等价于 x = x * ( y + 8
46、 )运算符与表达式 前一页 下一页 休息64赋值运算符举例a = 5表达式值为表达式值为5a = b = c = 5表达式值为表达式值为5,a,b,c均为均为5a = ( b = 4 ) + ( c = 6 )表达式值为表达式值为10,a为为10,b为为4,c为为6a = ( b = 10 ) / ( c = 2 )表达式值为表达式值为5,a为为5,b为为10,c为为2a += a -= a * a 相当于相当于: a = a + ( a = a - a*a ) 若若a=5,则表达式值为,则表达式值为 -40运算符与表达式 前一页 下一页 休息65逗号运算和逗号表达式l逗号运算符格式:逗号运算
47、符格式:表达式表达式1,表达式表达式2,l求解顺序及结果:求解顺序及结果:先求解先求解1,再求解,再求解2,最终结果为表达式,最终结果为表达式2的值的值l优先级优先级:倒数第一级倒数第一级l结合性:结合性:从左至右从左至右 例例 a=3*5,a*4 最终结果为最终结果为60 a = 15运算符与表达式 前一页 下一页 休息66关系运算符与关系表达式l关系运算符关系运算符:用于比较运算即判断条件是否成立用于比较运算即判断条件是否成立l符号与优先级:符号与优先级: = = != 优先级相同(高)优先级相同(低)优先级相同(高)优先级相同(低)l 关系运算符优先级低于算术运算符关系运算符优先级低于算
48、术运算符l结合性:从左至右结合性:从左至右l结果:逻辑值,即只能为结果:逻辑值,即只能为 1(true) 或或 0(false)例:设例:设a = 2, b = 3, c = 4, x = 1, y = 2 则:则:a b 值为值为False(0) c b ) & ( xy ) 值为值为False 运算符与表达式 前一页 下一页 休息68逻辑运算符与逻辑表达式M注意:注意:M bool 值参与计算时,以值参与计算时,以0为假;以为假;以1为真为真M求出的求出的 表达式值,以表达式值,以0为假;以非为假;以非0为真为真M混合运算优先级:括号、单目、算术、关系、混合运算优先级:括号、单目、
49、算术、关系、逻辑逻辑运算符与表达式 前一页 下一页 休息69逻辑运算符与逻辑表达式l练习:练习:设设 a = 3 b=4 c=5 x = 1 y = 2,求出下列表达式的值求出下列表达式的值!( a + b ) + c 1 & b + c / 2表达式值为表达式值为 truet = ( m = a b ) & ( c = = x b ) & ( ( +x ) y ) 表达式值为表达式值为False , a值为值为4, x值为值为1M注意:注意:&左式值为左式值为0,| 左式值为左式值为1时,时,右式将不再计算。右式将不再计算。运算符与表达式 前一页 下一页 休息
50、70条件运算符与条件表达式l一般形式:一般形式:表达式表达式1 1?表达式?表达式2 2:表达式:表达式3 3表达式表达式1 1 必须是必须是 bool bool 类型类型l执行顺序:执行顺序:先求解先求解表达式表达式1 1,若表达式若表达式1 1的值为的值为truetrue,则求解,则求解表达式表达式2 2,表达式表达式2 2的值为最终结果的值为最终结果若表达式若表达式1 1的值为的值为falsefalse,则求解,则求解表达式表达式3 3,表达式表达式3 3的值为最终结果的值为最终结果运算符与表达式 前一页 下一页 休息71条件运算符与条件表达式l实例:实例:设设 a = 2, b = 3
51、, x = 1, y = 2 c = ( ab ) ? x+a : y+a c 值为值为 4 l说明:说明:条件运算符优级高于赋值运算符,低于逻辑运算条件运算符优级高于赋值运算符,低于逻辑运算符符结合方向为自右至左结合方向为自右至左M注意:表达式注意:表达式2、3的类型可以不同,条件表达式的类型可以不同,条件表达式的最终类型为的最终类型为 2 和和 3 中较高的类型。中较高的类型。运算符与表达式 前一页 下一页 休息72位运算运算符与表达式l位运算指深入字节内部,按单个二进位运算指深入字节内部,按单个二进制位进行运算制位进行运算l运算规则运算规则对运算量按每一个二进制位进行运算对运算量按每一个
52、二进制位进行运算l运算特点:运算特点:每位运算结果只有每位运算结果只有0和和1两种两种相邻两个位之间不存在进位问题相邻两个位之间不存在进位问题运算符与表达式 前一页 下一页 休息73位运算运算符与表达式l运算符:运算符:逻辑位运算:逻辑位运算:(按位与)(按位与)(按位或)(按位或)(按位异或)(按位异或)(取反,单目运算符)(取反,单目运算符)移位运算:移位运算:(左移)(左移)(右移)(右移) 运算符与表达式 前一页 下一页 休息74位运算运算符与表达式l优先级:优先级:本类:本类:总排位:总排位:算术算术移位移位关系关系 逻辑位运算逻辑位运算逻辑逻辑与一般单目运算符相同与一般单目运算符相
53、同l结合性:结合性:从右往左:从右往左其余:从左往右其余:从左往右运算符与表达式 前一页 下一页 休息75位运算-按位与(&)l按位与运算规则按位与运算规则两个运算量相应位都是两个运算量相应位都是1结果为结果为1,否则为,否则为0l举例:计算举例:计算 3 & 5 3 3: 0 0 0 0 0 0 1 10 0 0 0 0 0 1 1 5 5:(&) 0 0 0 0 0 1 0 1(&) 0 0 0 0 0 1 0 13 & 5: 0 0 0 0 0 0 0 13 & 5: 0 0 0 0 0 0 0 1l特点:特点:与与0运算,结果为运算,结果
54、为0;与与1运算,结果不变运算,结果不变运算符与表达式 前一页 下一页 休息76位运算-按位与(&)l用途:用途:将某一位置将某一位置0,其它位不变。,其它位不变。例:将例:将 char 型变量型变量 a 的最低位置的最低位置 0: a = a & 0376 = a & 11,111,110取指定位。取指定位。例:有例:有 char c; short int a; 取出取出 a 的低字节,置于的低字节,置于 c 中:中: c = a & 0377 = a & 00000000 11111111运算符与表达式 前一页 下一页 休息77位运算-按位或(|)l
55、按位或运算规则按位或运算规则两个运算量相应位都是两个运算量相应位都是0结果为结果为0,否则为,否则为1l举例:计算举例:计算 3 | 5 3 3: 0 0 0 0 0 0 1 10 0 0 0 0 0 1 1 5 5:(|) 0 0 0 0 0 1 0 1(|) 0 0 0 0 0 1 0 13 | 5: 0 0 0 0 0 1 1 13 | 5: 0 0 0 0 0 1 1 1l特点:特点:与与1运算,结果为运算,结果为1;与与0运算,结果不变运算,结果不变运算符与表达式 前一页 下一页 休息78位运算-按位或(|)l用途:用途:将某些位置将某些位置1,其它位不变。,其它位不变。例如:将例如
56、:将 short int 型变量型变量 a 的低字节置的低字节置 1 : a = a | 0 xff = a | 00000000 11111111运算符与表达式 前一页 下一页 休息79位运算-按位异或()l按位异或运算规则按位异或运算规则两个操作数进行异或:两个操作数进行异或:若对应位若对应位相同相同,则结果该位为,则结果该位为 0,若对应位若对应位不同不同,则结果该位为,则结果该位为 1,l举例:计算举例:计算 071052 071: 071: 0 0 1 1 1 0 0 10 0 1 1 1 0 0 1 052 052: () 0 0 1 0 1 0 1 0() 0 0 1 0 1 0
57、 1 0 071052 : 071052 : 0 0 0 1 0 0 1 10 0 0 1 0 0 1 1运算符与表达式 前一页 下一页 休息80位运算-按位异或()l用途:用途:使特定位翻转(与使特定位翻转(与0异或保持原值,与异或保持原值,与1异异或取反)或取反) 例如:要使例如:要使 01111010 低四位翻转:低四位翻转: 0 1 1 1 1 0 1 0 () 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 1运算符与表达式 前一页 下一页 休息81位运算-按位异或()l用途:用途:交换二个变量的值交换二个变量的值 例如:例如:a = 3, b = 4,想将想将a, b
58、的值互换,公式为:的值互换,公式为:a = a b; b = b a; a = a b; 0 0 0 0 0 0 1 1 () 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 a = 7 () 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 b = 3 () 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 a = 4运算符与表达式 前一页 下一页 休息82位运算-取反()l按位取反()按位取反()单目运算符单目运算符对一个二进制数按位取反。对一个二进制数按位取反。例: 025:00000000 00010101 025:11111111 1110
59、1010运算符与表达式 前一页 下一页 休息83位运算-移位l移位运算移位运算指将一个整数整体向左或右移动若干位指将一个整数整体向左或右移动若干位其中:左操作数为要移位的整数,右操作数其中:左操作数为要移位的整数,右操作数为移动的位数为移动的位数l分类运算规则:分类运算规则:左移运算(左移运算()右移后,低位:舍弃右移后,低位:舍弃 高位:无符号数:补高位:无符号数:补0 有符号数:补有符号数:补“符号位符号位”运算符与表达式 前一页 下一页 休息84 例:例:32 3: 00000011 补补0000 丢弃丢弃 3215: 00001111 丢弃丢弃 补补00 152:00000011 3有
60、符号数:有符号数:-122 -15: 11110100 丢弃丢弃 补补11 -152:11111101 -3说明:右移说明:右移n位相当于除以位相当于除以2n位运算-移位运算符与表达式 前一页 下一页 休息85位运算举例l求出表达式的值求出表达式的值设有定义:设有定义: int a = 1, b = 2, c = 3;a | b ca & b | ca b & -c1.(a 1)结果为-10010& 1101=00001 0000=1 = 100 + 1 = 5 = 1 | 11111100 = -3 运算符与表达式 前一页 下一页 休息86sizeof运算符l语法形式语法形式sizeof (类型名类型名) sizeof (表达式表达式) l结果值:结果值:“类型名类型名”所指定的类型或所指定的类型或“表达式表达式”的的结果类型所占
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年汽车美容师学科知识考查试题及答案
- 2024年不确定性与变量选择试题及答案
- 家庭宠物营养实施方案试题及答案
- 六年级语文特色试题及答案
- 汽车美容师工作流程解析试题及答案
- 2024年汽车维修工车辆出厂检验试题及答案
- 2024年统计学实例解析试题及答案
- 2024年小学语文课本知识点
- 2024年食品质检员考试注意事项试题及答案
- 食品卫生标准实施的难点试题及答案
- gis在城乡规划中的应用
- 2025届高考政治复习:统编版必修3《政治与法治》知识点考点复习提纲
- 2023-2024学年广东省深圳市龙华区八年级(下)期末英语试卷
- 【浙江卷】浙江省2024学年第一学期杭州市2025届高三年级教学质量检测(杭州一模)(11.4-11.6)英语试卷
- 无人机行业智能化无人机设计与应用方案
- 西方文论概览(第二版)-第八章课件
- 2024年教师招聘考试真题及答案招教真题
- 中医养生之春季养生课件
- 《制作小台灯》课件
- 《碳排放管理师》(高级)培训考试模拟题及答案
- 2024年重庆市高考历史试卷(含答案)
评论
0/150
提交评论