C语言程序设计课件作者罗朝盛第2章节数据类型 运算符和表达式.pptVIP

  • 5
  • 0
  • 约1.82万字
  • 约 78页
  • 2017-11-12 发布于广东
  • 举报

C语言程序设计课件作者罗朝盛第2章节数据类型 运算符和表达式.ppt

第2章 数据类型、运算符和表达式 1.机器数 用“0”表示正数,“1”表示负数,其余位仍表示数值。把在机器内存的正、负号数字化的数称为机器数。 x=a+b w=sin(a)+sin(b) 赋值运算符的结合方向:由右至左 因此 a=b=c=5可理解为: a=(b=(c=5)) 优先级:低于条件运算符 ?:,高于逗号运算符 , 关于赋值运算的说明: 如果赋值运算符两边的数据类型不相同,系统将自动进行类型转换,即把赋值号右边的类型换成左边的类型。 具体转换规定如下: 1)实型赋予整型,舍去小数部分。 2)整型赋予实型,数值不变,但将以浮点形式存放, 即增加小 数部分(小数部分的值为0)。 3) 字符型赋予整型,由于字符型为一个字节,整型为二个字节,故将字符的ASCII码值放到整型量的低八位中,高八位为0。 4) 整型赋予字符型,只把低八位赋予字符量。 例2-4 用程序验证不同类型变量的赋值的类型转换。 void main() { int a,b,c=322; float x,y=3.14; char ch1=a,ch2; a=y; x=c; b=ch1; ch2=c; printf(%d,%f,%d,%c,a,x,b,ch2); } 程序运行结果是: 在赋值符“=”之前加上其它二目运算符可构成复合赋值符。如:+=, - =, *=, /=, %=, =, =, =, ^=, |= 2.5.5 位运算符 前面介绍的各种运算都是以字节作为最基本位进行的。但在很多系统程序中常要求在位(bit)一级进行运算或处理。 C语言提供了位运算的功能,这使得C语言也能像汇编语言一样用来编写系统程序。 1.按位与── (1)格式:xy (2)规则:对应位均为1时才为1,否则为0:95=1。 例如,95可写算式如下: (9的二进制补码) (5的二进制补码) (1的二进制补码) 2.按位或──| (1)格式:x|y (2)规则:对应位均为0时才为0,否则为1:3|9=11。 例如,9 | 5可写算式如下: | (十进制为13) 即9 | 5=13 3.按位异或── ^ (1)格式:x ^ y (2)规则:对应位相同时为0,不同时为1:9^5=12 (3)主要用途:使1个数的某(些)位翻转(即原来为1的位变为0,为0的变为1),其余各位不变 4.按位取反── ~ (1)格式:~x (2)规则:各位翻转,即原来为1的位变成0,原来为0的位变成1:在IBM-PC机中,~0=0xffff,~9=0xfff6 (3)主要用途:间接地构造一个数,以增强程序的可移植性 5.按位左移── (1)格式:x 位数 (2)规则:使操作数的各位左移,低位补0,高位溢出: 例P302 7.位运算符与赋值运算符组成复合运算符 除按位取反运算符(~)外,其他位运算符都可与赋值运算符组成复合位赋值运算符。它们是:=,|=,=,=,∧=。 例如,a=b等价于a=ab,a|=b等价于a=a|b,a=b等价于a=ab。 2.5.6 逗号运算符和逗号表达式 例题 void main() { int a=2,b=4,c=6,x,y; y=((x=a+b++),(b+c),x+c); printf(y=%d,x=%d,y,x); } 2.5.7 表达式中的类型转换 1.隐式数据类型转换 C语言中不同类型常量及变量参与运算 ,若参与运算的两个数据类型不同,编译程序按照一定的规则将它们变换为同一类型的量进行运算。 转换规则: 2.强制类型转换 强制类型转换符 ( ) 功能:强制将一个表达式结果的数据类型转换为特定类型 其一般形式为:(类型符)表达式 2.6.1 地址与指针的概念 2.6.2 变量的存储与访问 2.6.3 指针变量的定义 2.6.4 指针变量的初始化 指针变量的说明 C语言编译系统提供了上百种库函数,用户编写的程序(函数)中可直接调用系统提供的库函数。 stdio.h中声明了C语言中大部分关于输入输出操作的函数 math.h中声明的库函数

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档