chap06_回顾数据类型和表达式

上传人:油条 文档编号:48809351 上传时间:2018-07-20 格式:PPT 页数:67 大小:884.50KB
返回 下载 相关 举报
chap06_回顾数据类型和表达式_第1页
第1页 / 共67页
chap06_回顾数据类型和表达式_第2页
第2页 / 共67页
chap06_回顾数据类型和表达式_第3页
第3页 / 共67页
chap06_回顾数据类型和表达式_第4页
第4页 / 共67页
chap06_回顾数据类型和表达式_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《chap06_回顾数据类型和表达式》由会员分享,可在线阅读,更多相关《chap06_回顾数据类型和表达式(67页珍藏版)》请在金锄头文库上搜索。

1、Chap 6 回顾 数据类型和表达式 6.1 数据的存储和基本数据类型 6.2 数据的输入和输出6.3 类型转换6.4 表达式本章要点nC语言的基本数据类型有哪些?n各种基本数据类型的常量有哪些表现形式 ?nC语言有哪些表达式?各种表达式的求解 规则是什么?数据类型和表达式n数据类型基本数据类型n整型intn实型(浮点型)float doublen字符型char构造数据类型 数组、结构、联合、枚举指针类型空类型n运算:对数据的操作 运算符数据 表达式6.1 数据的存储和基本数据类型6.1.1 数据的存储 整型、实型、字符型数据的存储 6.1.2 基本数据类型 整型与整型常量(整数) 字符型与字

2、符型常量 实型与实型常量(实数)6.1.1 数据的存储整型数据设整数在内存中用2个字节存储 1 000 0001 1000 0001 0 000 0001 1000 0001符号位 1:负数 0:正数数值的表示方法原码 反码 补码n正数的原码、反码和补码相同 1 的补码 0 000 0000 0000 0001 32767 的补码 0 111 1111 1111 1111 (215-1,2个字节的存储单元能表示的最大正数)n负数的原码、反码和补码不同 -1原码 1 000 0000 0000 0001 反码 1 111 1111 1111 1110 原码取反(符号位保持不变)补码 1 111

3、1111 1111 1111 反码1原码 反码 补码 32767n补码 0 111 1111 1111 1111-32767n原码 1 111 1111 1111 1111n反码 1 000 0000 0000 0000 原码取反(符号位保持不变)n补码 1 000 0000 0000 0001 反码1-32768 = -32767-1n补码 1 000 0000 0000 0000 (2个字节的存储单元能表示的最小负数)-32768 -1 0 1 32767 32767 0111 1111 1111 11111 0000 0000 0000 00010 0000 0000 0000 0000

4、-1 1111 1111 1111 1111-2 1111 1111 1111 1110-32767 1000 0000 0000 0001-32768 1000 0000 0000 000032767 + 1 = 32768 ? 1000 0000 0000 000 = -32768-32768 - 1 = -32769 ? 0111 1111 1111 1111 = 32767实型和字符型数据的存储n实型数据的存储 -1.2345e+02 符号位 阶码 尾数n字符型数据的存储 一个字节存储ASCII码。例如字符型常量 A 的ASCII码为65,它在内存 中以下列形式存放: 0 1 0 0

5、0 0 0 16.1.2 基本数据类型n整型 有符号整型 无符号整型 数据长度 int unsigned int 16或32位 short int unsigned short int 16位 long int unsigned long int 32位n字符型 char 8位n实型(浮点型) 单精度浮点型 float 32位 双精度浮点型 double 64位基本数据类型整型扩展的整数类型:short long unsigned int 有符号整型 无符号整型 数据长度 int unsigned int 16或32位 short int unsigned short int 16位 long

6、 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整数类型的取值范围int 32位 -2147483648 2147483647 -231 231-1 short int 16位 -32768 32767 -215 215-1 long int 32位 -2147483648 2147483647 -

7、231 231-1unsigned 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整型常量(整数)n整数的表示 三种表现形式:十进制整数:正、负号,09,首位不是0 例: 10,123八进制整数:正、负号,07,首位是0 例: 010,0123十六进制整数:正、负号,09,af,A F,前缀是0x,0X 例:0x10,0X123整数的表示123 = 01111011 (B) 二进制=173 (O) 八进制=7B (X) 十

8、六进制 123 0173 0x7b 16 020 0x10 10 012 0XA 10 010 0x10n不能超出整型数据的取值范围n比长整型数还要大的数只能用实数来表示整数的类型判断整数的类型n整数后的字母后缀123L long123U unsigned123LU unsigned longn整数的值基本数据类型字符型n字符具有数值特征 A 65 0100 0001 n整型变量和字符变量的定义和赋值可以互换【 ASCII码范围】char c;c = A;或c = 65;int i;i = 65;或i = A;字符型常量n字符常量a、A、9、+、 $ (注意:单引号) nASCII字符集列出所

9、有可用的字符(256个)每个字符:惟一的次序值( ASCII 码)0 9 升序排列A Za z字符的数值特征字符ASCII 码对字符进行运算 对字符的ASCII 码进行运算例如:A 的 ASCII 码 65则:A+1=66,对应字符 B区分数字字符和数字1 1转 义 字 符n反斜杠后跟一个字符或数字n字符常量,代表一个字符n 101 x41 An所有字符都可以用转义字符表示基本数据类型实型实型(浮点型)数据n单精度浮点型 floatn双精度浮点型 double存储 数据精度 取值范围(有效数字) float 4字节 七/八位 (10-38 1038)double 8字节 十六位 (10308

10、10308 )数据精度和取值范围n数据精度 与 取值范围是两个不同的概念: float x = 1234567.89;虽在取值范围内,但无法精确表达。 float y = 1.2e55;y 的精度要求不高,但超出取值范围。n并不是所有的实数都能在计算机中精确表示n 实型常量的类型都是double1234567.80实型常量(实数、浮点数)n实数的表示浮点表示法0.123 123.4 12. .12科学计数法6.026E-27 1.2e+30 1E-5n实数的类型double6.2.1 整型数据的输入和输出6.2.2 实型数据的输入和输出6.2.3 字符型数据的输入和输出6.2 数据的输入和输出

11、 6.2.1 整型数据的输入输出printf (格式控制, 输出参数1, . , 输出参数n); scanf (格式控制, 输入参数1, . , 输入参数n);格式控制说明 %十进制 八进制 十六进制 int %d %o %x long %ld %lo %lx unsigned %u %o %x unsigned long %lu %lo %lx输出整型数据示例(1)# include int main(void) printf(“%d, %o, %xn“, 10, 10, 10); printf(“%d, %d, %dn“, 10, 010, 0x10); printf(“%d, %xn“,

12、 012, 012); return 0; 00101010, 12, a 10, 8, 16 10, a输入整型数据示例(2)# include int main(void) int a, b; printf(“input a, b:“); scanf(“%o%d“ , printf(“%d%5dn“, a, b); /*%5d指定变量b的输出宽度为5 */printf(“%x, %dn“, a, b); return 0; input a, b: 17 1715 17 f, 17“%x%d“6.2.2 实型数据的输入和输出n输入 scanf()float:%f 或%e 以小数或指数形式输入

13、一个单精度浮点数double: %lf或%le 以小数或指数形式输入一个双精度浮点数n输出 printf() float 和double使用相同的格式控制说明%f 以小数形式输出浮点数,保留6位小数%e 以指数形式输出实型数据输出格式示例# include int main(void) double d = 3.1415926;printf(“%f, %en“, d, d); printf(“%5.3f, %5.2f, %.2fn“, d, d, d); return 0; 3.141593, 3.14159e+00 3.142, 3.14, 3.14一共5位,小数部分3位,小数点占1位实型数据输入输出示例 假定float的精度为7位,double的精度为16位 # include int main(void) float f; double d;printf(“input f, d:“);scanf(“%f%lf“, printf(“f = %fn d = %f n“, f, d);d = 1234567890123.12;printf(“d = %f n“, d);return 0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号