好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

chap5 数据类型和表达式 - 浙江大学计算机辅助设计与图形学国 ….ppt

74页
  • 卖家[上传人]:繁星
  • 文档编号:88248006
  • 上传时间:2019-04-22
  • 文档格式:PPT
  • 文档大小:924.50KB
  • / 74 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • Chap 6 数据类型和表达式,6.1 数据的存储和基本数据类型 6.2 常量和变量 6.3 数据的输入和输出 6.4 类型转换 6.5 表达式,1,本章要点,C语言的基本数据类型有哪些? 各种基本数据类型的常量和变量是怎样定义的? C语言有哪些表达式? 各种表达式的求解规则是什么?,2,数据类型和表达式,数据类型 基本数据类型 整型int 实型(浮点型)float double 字符型char 构造数据类型 数组、结构、联合、枚举 指针类型 空类型 运算:对数据的操作 运算符+数据  表达式,3,6.1 数据的存储和基本数据类型,6.1.1 数据的存储 整型、实型、字符型数据的存储 6.1.2 基本数据类型 整型、实型、字符型,4,6.1.1 数据的存储-整型数据,设整数在内存中用2个字节存储 1 000 0001 1000 0001 0 000 0001 1000 0001,,符号位 1:负数 0:正数,,5,数值的表示方法-原码 反码 补码,正数的原码、反码和补码相同 1 的补码 0 000 0000 0000 0001 …… 32767 的补码 0 111 1111 1111 1111 (215-1,2个字节的存储单元能表示的最大正数) 负数的原码、反码和补码不同 -1 原码 1 000 0000 0000 0001 反码 1 111 1111 1111 1110 原码取反 补码 1 111 1111 1111 1111 反码+1,6,原码 反码 补码,32767 补码 0 111 1111 1111 1111 -32767 原码 1 111 1111 1111 1111 反码 1 000 0000 0000 0000 原码取反 补码 1 000 0000 0000 0001 反码+1 -32768 = -32767-1 补码 1 000 0000 0000 0000 (2个字节的存储单元能表示的最小负数),7,-32768 -1 0 1 32767,32767 0111 1111 1111 1111 32766 0111 1111 1111 1110 32765 0111 1111 1111 1101 …… 1 0000 0000 0000 0001 0 0000 0000 0000 0000 -1 1111 1111 1111 1111 -2 1111 1111 1111 1110 …… -32767 1000 0000 0000 0001 -32768 1000 0000 0000 0000,32767 + 1 = 32768 ? 1000 0000 0000 000 = -32768 -32768 - 1 = -32769 ? 0111 1111 1111 1111 = 32767,8,实型和字符型数据的存储,实型数据的存储 -1.2345e+02 符号位 阶码 尾数 字符型数据的存储 一个字节存储ASCII码,9,5.1.2 基本数据类型,整型 有符号整型 无符号整型 数据长度 int unsigned [int] 16或32位 short [int] unsigned short [int] 16位 long [int] unsigned long [int] 32位 字符型 char 8位 实型(浮点型) 单精度浮点型 float 32位 双精度浮点型 double 64位,10,基本数据类型-整型,扩展的整数类型:short long unsigned [int] 有符号整型 无符号整型 数据长度 int unsigned [int] 16或32位 short [int] unsigned short [int] 16位 long [int] unsigned long [int] 32位,有符号 short 1 000 0000 0000 0000 -32768 -215 0 111 1111 1111 1111 32767 215-1 无符号 unsigned short 0000 0000 0000 0000 0 1111 1111 1111 1111 65535 216-1,11,整数类型的取值范围,int 32位 -2147483648 ~ 2147483647 -231 ~ 231-1 short [int] 16位 -32768 ~ 32767 -215 ~ 215-1 long [int] 32位 -2147483648 ~ 2147483647 -231 ~ 231-1 unsigned [int] 32位 0 ~ 4294967295 0 ~ 232-1 unsigned short [int] 16位 0 ~ 65535 0 ~ 216-1 unsigned long [int] 32位 0 ~ 4294967295 0 ~ 232-1,12,基本数据类型-字符型,字符具有数值特征 'A' 65 0100 0001 整型变量和字符变量的定义和赋值可以互换 【 ASCII码范围】 char c; c = 'A'; 或 c = 65;,int i; i = 65; 或 i = 'A';,13,基本数据类型-实型,实型(浮点型)数据 单精度浮点型 float 双精度浮点型 double 存储 数据精度 取值范围 (有效数字) float 4字节 七/八位 ±(10-38 ~ 1038) double 8字节 十六位 ±(10308 ~ 10308 ),14,数据精度和取值范围,数据精度 与 取值范围是两个不同的概念: float x = 1234567.89; 虽在取值范围内,但无法精确表达。

      float y = 1.2e55; y 的精度要求不高,但超出取值范围 并不是所有的实数都能在计算机中精确表示 实型常量的类型都是double,15,6.2.1 常量 符号常量 整型常量、实型常量、字符型常量 6.2.2 变量 变量的定义和使用,6.2 常量和变量,16,6.2.1 常量,常量的类型通常由书写格式决定 123 (整型) 4.56 (实型) 'A' (字符型) 符号常量:用一个标识符代表一个常量 :PI :EPS,17,例5-1 求球的表面积和体积,# include # define PI 3.14 int main(void) { double r, s, v; printf(“Enter r: “); scanf(“%lf“, },加分号?,通常用大写字母,18,符号常量的优点,# include int main(void) { double r, s, v; scanf(“%lf“, },# include # define PI 3.14 int main(void) { double r, s, v; scanf(“%lf“, },3.14159,3.14159,3.14159,19,整型常量(整数),整数的表示 三种表现形式: 十进制整数:正、负号,0-9,首位不是0 例: 10,123 八进制整数:正、负号,0-7,首位是0 例: 010,0123 16进制整数:正、负号,0-9,a-f,A-F,前缀是0x,0X 例:0x10,0x123,20,整数的表示,123 = 1111011 (二进制) = 0173 (八进制) = 0X7B (十六进制) 16 020 0x10 10 012 0XA 10 010 0x10 不能超出整型数据的取值范围 比长整型数还要大的数只能用实数来表示,21,整数的类型,判断整数的类型 整数后的字母后缀 123L long 123U unsigned 123LU unsigned long 整数的值,22,实型常量(实数、浮点数),实数的表示 浮点表示法 0.123 123.4 12. .12 科学计数法 6.026E-27 1.2e+30 1E-5 实数的类型 double,23,字符型常量,字符常量 'a' 'A' '9' '+' '$' ASCII字符集 列出所有可用的字符(256个) 每个字符:惟一的次序值( ASCII 码) '0'-'9' 升序排列 'A'-'Z' 'a'-'z',24,字符的数值特征,字符-ASCII 码 对字符进行运算 - 对字符的ASCII 码进行运算 例如: 'A' 的 ASCII 码 65 则:'A'+1=66,对应字符 'B',区分数字字符和数字 '1' 1,25,转义字符,反斜杠后跟一个字符或数字 字符常量,代表一个字符 '\n' '\101' '\x41' 'A' 所有字符都可以用转义字符表示,26,6.2.2 变量,在程序运行过程中,其值可以被改变的量。

      变量必须先定义,后使用 定义变量时要指定变量名和数据类型 变量应该先赋值,后引用,27,变量的定义,变量名:合法的标识符 小写字母;见名知义 变量的类型:在定义时指定 变量定义的一般形式 类型名 变量名表; int celsius, fahr; float x; double area, length; 变量名代表内存中的一个存储单元,存放该变量的值 该存储单元的大小由变量的数据类型决定,28,变量的使用,必须先定义,后使用 应该先赋值,后引用 变量的赋值方法 变量赋初值:在定义变量时对它赋值 int a = 5, b = 3; 赋值表达式 int a, b; a = 5; b = 3; 输入 int a, b; scanf(“%d%d“, ,29,6.3.1 整型数据的输入和输出 6.3.2 实型数据的输入和输出 6.3.3 字符型数据的输入和输出,6.3 数据的输入和输出,30,6.3.1 整型数据的输入输出,printf (格式控制, 输出参数1, . , 输出参数n); scanf (格式控制, 输入参数1, . , 输入参数n); 格式控制说明 %… 十进制 八进制 十六进制 int %d %o %x long %ld %lo %lx unsigned %u %o %x unsigned long %lu %lo %lx,31,例6-2(1) 输出整型数据,# include int main(void) { printf(“%d, %o, %x\n“, 10, 10, 10); printf(“%d, %d, %d\n“, 10, 010, 0x10); printf(“%d, %x\n“, 012, 012); return 0; },10, 12, a 10, 8, 16 10, a,32,例6-2(2) 输入整型数据,# include int main(void) { int a, b; printf(“input a, b:“); scanf(“%o%d“, },input a, b: 17 17 15 17 f, 17,%x%d,33,6.3.2 实型数据的输入和输出,输入 scanf() float:%f 或%e 以小数或指数形式输入一个单精度浮点数 double: %lf或%le 以小数或指数形式输入一个双精度浮点数 输出 printf() float 和double使用相同的格式控制说明 %f 以小数形式输出浮点数,保留6位小数 %e 以指数形式输出,34,。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.