c语言的数据类型、运算符与表达式.ppt

第3章数据类型、运算符与表达式,预备知识 数据类型 常量与变量 不同类型数据间的转换 运算符和表达式3.0 预备知识 计算机中数的表示及进制转换 数码、基与权 数码表示数的符号 基数码的个数 权每一位所具有的值 数制,任何一种数制表示的数都可以写成按位权展开的多项式之和,其一般形式为 Ndn-1bn-1dn-2bn-2d0b0d-1b-1d-mb-m 式中 n 整数的总位数 m 小数的总位数 d 某位的数码 b 基数,各种进制之间的转换 二进制、八进制、十六进制转换成十进制 方法按权相加,各种进制之间的转换整数 二进制、八进制、十六进制转换成十进制 方法按权相加,十进制转换成二进制、八进制、十六进制 原理,方法连续除以基,从低到高记录余数,直至商为0,二进制与八进制之间的转换 二进制转换成八进制从右向左,每3位一组(不足3位左补0),转换成八进制 八进制转换成二进制用3位二进制数代替每一位八进制数,例 11010012001,101,00121518,例 2468010,100,1102101001102,000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7,二进制与十六进制之间的转换 二进制转换成十六进制从右向左,每4位一组(不足4位左补0),转换成十六进制 十六进制转换成二进制用4位二进制数代替每一位十六进制数,例 1101010111110120011,0101,0111,11012357D16,例 4B9E160100,1011,1001,111021001011100111102,0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 9 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F,字节和位 内存以字节为单元组成 每个字节有一个地址 一个字节由8个二进制位组成 每个二进位的值是0或1,数值的表示方法原码、反码和补码 原码最高位为符号位,其余各位为数值本身的绝对值 反码 正数反码与原码相同 负数符号位为1,其余位对原码取反 补码 正数原码、反码、补码相同 负数最高位为1,其余位为原码取反,再对整个数加1,十进制数 二进制数原码 二进制数补码 十六进制数 15 0 1 1 1 1 0 1 1 1 1 F 14 0 1 1 1 0 0 1 1 1 0 E 13 0 1 1 0 1 0 1 1 0 1 D 12 0 1 1 0 0 0 1 1 0 0 C 11 0 1 0 1 1 0 1 0 1 1 B 10 0 1 0 1 0 0 1 0 1 0 A 9 0 1 0 0 1 0 1 0 0 1 9 8 0 1 0 0 0 0 1 0 0 0 8 7 0 0 1 1 1 0 0 1 1 1 7 6 0 0 1 1 0 0 0 1 1 0 6 5 0 0 1 0 1 0 0 1 0 1 5 4 0 0 1 0 0 0 0 1 0 0 4 3 0 0 0 1 1 0 0 0 1 1 3 2 0 0 0 1 0 0 0 0 1 0 2 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 -0 1 0 0 0 0,十进制数 二进制数原码 二进制数补码 十六进制数 - 1 1 0 0 0 1 1 1 1 1 1 - 2 1 0 0 1 0 1 1 1 1 0 - 3 1 0 0 1 1 1 1 1 01 - 4 1 0 1 0 0 1 1 1 0 0 - 5 1 0 1 0 1 1 1 0 1 1 -6 1 0 1 1 0 1 1 0 1 0 - 7 1 0 1 1 1 1 1 0 0 1 - 8 1 1 0 0 0 1 1 0 0 0 - 9 1 1 0 0 1 1 0 1 1 1 - 10 1 1 0 1 0 1 0 1 1 0 - 1 1 1 1 0 1 1 1 0 1 0 1 - 12 1 1 1 0 0 1 0 1 0 0 - 13 1 1 1 0 1 1 0 0 1 1 - 14 1 1 1 1 0 1 0 0 1 0 - 15 1 1 1 1 1 1 0 0 0 1 -16 1 0 0 0 0,负数补码转换成十进制数最高位不动,其余位取反加1,例 补码11111001 取反10000110 加1 10000111-7,原码 -65 反码原码按位取反 补码反码加一 用补码表示后,减法用加法计算。如 -65 683,11 00 00 01,10 11 11 10,10 11 11 11,,01 00 01 00,10 11 11 11,01 00 01 00,1 00 00 00 1 1,10 11 11 11,假定 8位机器,表示的数为-128 127,16 32 48,20- 128 -108,-16-127 -143,9-54 97161243.1 数据类型 数据类型总表,数据类型决定 1. 数据占内存字节数 3. 数据取值范围 3. 其上可进行的操作,基本数据类型整型,字符型,实型,有,无,说明数据类型所占字节数随机器硬件不同而不同,上表以IBM PC机为例,3.2 常量与变量 标识符 定义用来标识变量、常量、函数等的字符序列 组成 只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线 大小写敏感 不能使用关键字 长度最长32个字符 命名原则 见名知意 不宜混淆 如l与I, o与0,例判断下列标识符号合法性 sum Sum M.D.John day Date 3days student_name 33 lotus_1_2_3 char ab _above 123,M.D.John,3days,33,char,123,ab,练习,判断合法的标识符 A Pad B scanf c void D a * Pd a10 max temp A b-b B CCP c hiy D _isw abc float INT A _0123 B del_word C list D keep ssiped signed *jer wind,B,D,一般用大写字母,以示区别,但不是必须的。 是宏定义预处理命令,不是C语句不加分号(;),如 define PRICE 30,常量 定义程序运行时其值不能改变的量(即常数) 分类 符号常量用标识符代表常量 定义格式 define 符号常量 常量,例 符号常量举例ch2_1.c define PRICE 30 main int num,total; num10; totalnum*PRICE; printf“totald“,total; ,运行结果total300直接常量 整型常量 实型常量 字符常量 字符串常量,整型常量(整常数) 三种形式 十进制整数由数字09和正负号表示.如 123,-456,0 八进制整数由数字0开头,后跟数字07表示.如0123,011 十六进制整数由0 x开头,后跟09,af,AF表示. 如0 x123,0Xff例 12 与 12L,例 30000 为int型 65536 为long int 型整型常量的类型 根据其值所在范围确定其数据类型 在整常量后加字母l或L,认为它是long int 型常量,问题 0123 10 0 x123 10 0Xff 10,实型常量(实数或浮点数) 表示形式 十进制数形式(必须有小数点) 如0.123, .123, 123.0, 0.0, 123. 指数形式(e或E之前必须有数字;指数必须为整数)如12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5实型常量的类型 默认double型 在实型常量后加字母f或F,认为它是float 型,字符常量 定义用单引号括起来的单个普通字符或转义字符.,字符常量的值该字符的ASCII码值,如 101 -A 012 -n 376 - x61 -a 60 -0 483 ,例 A-101-x4165如 A65, a97, 048 , n10,如 a A n 101,转义字符反斜线后面跟一个字符或一个代码值表示,例 转义字符举例ch2_001.c,ch2_004.c main printf“101 x42 Cn“; printf“I say“How are you“n“; printf“C Programn“; printf“Turbo C“; ,运行结果屏幕显示 A B C Isay”How are you” C Program Turbo C,例 main printf“Ybn”; ,运行结果 屏幕显示 打印机输出,字符常量与字符串常量不同,字符串常量 定义用双引号“”括起来的字符序列 存储每个字符串尾自动加一个 0 作为字符串结束标志,变量 概念其值可以改变的量 变量名与变量值 变量定义的一般格式 数据类型 变量1,变量2变量n;,变量初始化定义时赋初值,例 int a,b,c; float data;,决定分配字节数 和数的表示范围,合法标识符,例 int a2,b,c4; float data3.67; char chA; int x1,y1,z1; int xyz1;,变量定义位置一般放在函数开头,Ch2_005.c,变量的使用先定义,后使用,例1 int student; stadent19; Undefined symbol statent in function main,例2 float a,b,c; cab; Illegal use of floating point in function main,凡未被事先定义的,不做为变量名,以避免变量名使用出错;,每个变量属于一确定类型,以避免运算时类型出错;比如 求余运算,每个变量在定义时被指定为一确定类型,编译时为其分配相应存储单元;,整型变量 占字节数随机器不同而不同,一般占一个机器字 shortintlong 可用sizeof类型标识符)测量,实型变量 float占4字节,提供7位有效数字 double占8字节,提供1516位有效数字,字符型变量 字符变量存放字符ASCII码 char与int数据间可进行算术运算,例 float a; a111111.111; /* a111111.1*/ double b; b111111.111; /* b111111.111*/,例 aD; /* a68; */ xA5; /* x655; */ sG /* s3371; */,没有字符串变量,用字符数组存放Ch2_006.c例 /*ch2_003.c*/ define PRICE 12.5 main int num3; float total; char ch1,ch2D; totalnum*PRICE; ch1ch2-Aa; printf“totalf,ch1cn”,total,ch1; ,运行结果 total37.500000, ch1d在内存中字符变量存字符的ASCII码, 如 A 65 B 66 字符变量和整型变量是通用的(但字节数不同)比如,main int a, b; char c, d; a65; bx41; c65; dx41; printf “c ,dn“,a, a; printf “c ,dn“,b, b; printf “c ,dn“,c, c; printf “c ,dn“,d, d;,A, 65 A,65 A,65 A,65,01 00 00 01,01 00 00 10,无符号字符,a 97 254 、376 作为数字输出时,最高位理解为符号位 反码 原码,0 1 10 00 01,11 11 11 01,11 11 11 10,10 00 00 10,3.3不同类型数据间的转换 隐式转换 什么情况下发生 运算转换不同类型数据混合运算时 赋值转换把一个值赋给与其类型不同的变量时 输出转换输出时转换成指定的输出格式 函数调用转换实参与形参类型不一致时转换 运算转换规则不同类型数据运算时先自动转换成同一类型,显式转换(强制转换) 一般形式(类型名)(表达式) 例 intxy intxy double3/2 int3.6 说明强制转换得到所需类型的中间变量,原变量类型不变,例 main float x; int i; x3.6; iintx; printf“xf,id”,x,i; 结果x3.600000,i3,精度损失问题,Ch2_007.c,Ch2_008.c,3.4 运算符和表达式,学习运算符应注意 运算符功能 与运算量关系 要求运算量个数 要求运算量类型 运算符优先级别 结合方向 结果的类型,算术运算符和表达式 基本算术运算符 - * / 结合方向从左向右 优先级 - * / - - 2 3 4 说明 “-”可为单目运算符时,右结合性 两整数相除,结果为整数 要求两侧均为整型数据,例 5/2 -5/2.0 ,例 52 -52 110 51 5.52,例 5/2 为 2 -5/2.0 为 -2.5,例 52为1 -52为-1 110为1 51为0 5.52 ,自增、自减运算符 作用使变量值加1或减1 种类 前置 i, i 先执行i1或i-1,再使用i值) 后置 i,i 先使用i值,再执行i1或i-1),例 j3; kj; j3; kj; j3; printf“d”,j; j3; printf“d”,j; a3;b5;ca*b; a3;b5;ca*b;,k4,j4,k3,j4,4,3,c20,a4,c15,a4,说明 不能用于常量和表达式,如5,ab 结合方向 自右向左 优先级- * / - - 2 3 4,例 -i -i i3; printf“d”,-i; -3,例 -i i3; printf“d”,-i;Ch2_009.c,赋值运算符和表达式 简单赋值运算符 符号 格式 变量标识符表达式 作用将一个数据(常量或表达式)赋给一个变量,复合赋值运算符 种类 - * / dfunc; cd2;,说明 结合方向自右向左 优先级 14 左侧必须是变量,不能是常量或表达式,赋值表达式的值与变量值相等,且可嵌套,赋值转换规则使赋值号右边表达式值自动转换成其左边变量的类型,例 3x-2*y; ab3;,例 float f; int i; i10; fi; 则 f10.0,例 int i; i2.56; 结果i2;,例 abc5 ab5 a5c6 ab4c6 ab10/c2,表达式值为5,a,b,c值为5, b5;a5,表达式值11,c6,a11,表达式值10,a10,b4,c6,表达式值5,a5,b10,c2,例 a12; aa-a*a,例 int a2; a4-1; aa*a-a*3;,a-264 等价于aaaa-a*a,a0 等价于aaaa*aa-aa*3,逗号运算符和表达式 形式表达式1,表达式2,表达式n 结合性从左向右 优先级 15 逗号表达式的值等于表达式n的值 用途常用于循环for语句中,例 a3*5,a*4 a3*5,a*4,a5 例 xa3,6*3 xa3,6*a 例 a1;b2;c3; printf“d,d,d”,a,b,c; printf“d,d,d”,a,b,c,b,c;,a15,表达式值60,a15,表达式值20,赋值表达式,表达式值18,x18,逗号表达式,表达式值18,x3,1,2,3,3,2,3,逗号运算符和表达式 形式表达式1,表达式2,表达式n 结合性从左向右 优先级 15 逗号表达式的值等于表达式n的值 用途常用于循环for语句中,例 /*ch2_6.c*/ include main int x,y7; float z4; xyy6,y/z; printf“xdn“,x; ,运行结果x3隔开函数参数的逗号,不是逗号运算符,printf“d,d,d“, a,b,c printf“d, d“, a,b,c,十进制4956 410910 510610,二进制10111202 1212,十六进制81AE816116 10161416,八进制42754828 7858,

c语言的运算符分类ppt,c语言的数据类型、运算符与表达式.ppt相关推荐

  1. C语言变量的分类(C语言六)

    一.变量的分类 1.分类 全局变量: 声明在函数之外的变量 局部变量: 声明函数内部的变量 块变量: 生命在语句块(大括号)中的变量 2.不同变量的特性 变量的特性分为作用域和生命周期 作用域: 变量 ...

  2. c语言程序设计课件第二章,c语言程序设计课件张元国 ISBN9787566300386 PPT第二章数据类型 运算符与表达式...

    1.第2章 数据类型.运算符与表达式,语言的数据类型 常量与变量 运算符与表达式 不同类型数据间的转换,2.1语言的数据类型,数据是计算机程序处理的所有信息的总称,数值.字符.文本等都是数据,在各种程 ...

  3. C语言运算符与表达式课件,C语言课件(运算符和表达式).ppt

    C语言课件(运算符和表达式).ppt 运算符与表达式第二讲 运算符和表达式,引例 概念及分类 优先级和结合性 算术运算 关系运算 逻辑运算 位运算 赋值运算符 逗号运算符 条件运算符,引例,引例 问题 ...

  4. c语言程序计算p q真值表,C语言程序设计第2章数据类型﹒运算符和表达式.ppt

    C语言程序设计第2章数据类型﹒运算符和表达式 教学目标 掌握C语言标识符的组成 理解C语言的基本数据类型 掌握变量定义的方法 掌握常用的运算符的使用 掌握混合运算的数据转换方法 2.1 C语言的数据类 ...

  5. 二进制补码求值用c语言,C语言程序设计第2章数据类型.运算符与表达式.ppt

    C语言程序设计第2章数据类型.运算符与表达式 教学目标 掌握C语言标识符的组成 理解C语言的基本数据类型 掌握变量定义的方法 掌握常用的运算符的使用 掌握混合运算的数据转换方法 2.1 C语言的数据类 ...

  6. c语言运算符ppt,C语言知识学习运算符.ppt

    C语言知识学习运算符.ppt 第三章,C语言运算符,回顾,变量和常量的含义 熟悉基本数据类型 - int.char.float 和 double 使用算术运算符 理解类型转换 熟练使用 scanf 和 ...

  7. c语言运算符与表达式ppt,C语言基本运算符与表达式.ppt

    <C语言基本运算符与表达式.ppt>由会员分享,可在线阅读,更多相关<C语言基本运算符与表达式.ppt(39页珍藏版)>请在人人文库网上搜索. 1.a,1,基本运算符和表达式, ...

  8. c语言等号运算符先计算右边,C语言运算符和表达式.ppt

    <C语言运算符和表达式.ppt>由会员分享,可在线阅读,更多相关<C语言运算符和表达式.ppt(29页珍藏版)>请在人人文库网上搜索. 1.运算符和表达式,夏涛,运算符与表达式 ...

  9. c语言运算符ppt,C语言运算符.ppt

    C语言运算符.ppt 3.8 算术运算符和算术表达式,3.8.1 运算符简介 的运算符有以下几类 1算术运算符 ( - * / ) 2关系运算符 () 3逻辑运算符 () 4位运算符 ( |) 5赋值 ...

最新文章

  1. 向服务器端提交数据的两种方式
  2. Freemarker模板嵌套
  3. [云炬创业管理笔记]第四章把握创业机会测试5
  4. zookeeper节点类型详解
  5. 安卓逆向_15( 三 ) --- Android NDK 开发【 jni 静态注册、JNI_OnLoad 动态注册】
  6. Docker学习总结(43)——Docker Compose 搭建Mysql主从复制集群
  7. 边缘计算(edge computing)中computation offloading、resource allocation、resource provisioning的区别
  8. 新技术将让硬盘密度再提五倍
  9. linux arm fpu初始化,ARM处理器的浮点运算单元(FPU)
  10. 停止不了_男性脂溢性脱发之坚持及停止止脱方法后的对比(顺便找发友组队再战)...
  11. 如何使用3Dmax将模型和贴图一起导入新文件里而不会丢失贴图的解决方法
  12. 编程算法——取余计算
  13. VM虚拟机BT5下对usb无线网卡的配置
  14. 人性的弱点【我要喜欢你】
  15. win10 -- 增加新建 TXT 文档快捷键
  16. LaTeX新手入门以及TeXlive和TeXstudio的安装使用
  17. matlab怎么画隐函数图像,matlab中如何画隐函数的图像
  18. 互链独家 | 决战区块链金融战场 中国金融机构行动图谱
  19. adndroid 开元框架
  20. 可以定制频段的雷达信号模拟器

热门文章

  1. 24.匿名对象是什么?有什么作用?匿名对象的总结
  2. css calc复合运算
  3. 创新工场联合创始人汪华:创新者去哪儿
  4. notepad++颜色设置
  5. 对残差神经网络,resnet的理解
  6. 世纪前线网络质量测试工具 是什么_内推 | 大厂需要什么样的人才?看看这些JD就知道啦...
  7. 北航计算机研究生待遇,“双一流”高校研究生薪资排名:20所高校薪资过万!北航居第一...
  8. 财经职业技能测试的软件,财经商贸类(定)单独招生职业技能测试大纲.doc
  9. VM下安装雪豹Mac OS系统
  10. MySQL基础(尚硅谷李玉婷老师)