chap6回顾数据类型和表达式 61数据的存储和基本数据类型 62数据的输入和输出 63类型转换 64表达式
Chap 6 回顾 数据类型和表达式 6.1 数据的存储和基本数据类型 6.2 数据的输入和输出 6.3 类型转换 6.4 表达式
本章要点 ■C语言的基本数据类型有哪些? ■各种基本数据类型的常量有哪些表现形 式? ■C语言有哪些表达式?各种表达式的求解 规则是什么?
本章要点 ◼ C语言的基本数据类型有哪些? ◼ 各种基本数据类型的常量有哪些表现形 式? ◼ C语言有哪些表达式?各种表达式的求解 规则是什么?
数据类型和表达式 数据类型 口基本数据类型 整型int ■实型(浮点型) float doub|e ■字符型char 口构造数据类型 数组、结构、联合、枚举 口指针类型 口空类型 运算:对数据的操作 运算符+数据→表达式
数据类型和表达式 ◼ 数据类型 基本数据类型 ◼ 整型int ◼ 实型(浮点型)float double ◼ 字符型char 构造数据类型 数组、结构、联合、枚举 指针类型 空类型 ◼ 运算:对数据的操作 运算符+数据 → 表达式
61数据的存储和基本数据类型 611数据的存储 整型、实型、字符型数据的存储 612基本数据类型 整型与整型常量(整数) 字符型与字符型常量 实型与实型常量(实数)
6.1 数据的存储和基本数据类型 6.1.1 数据的存储 整型、实型、字符型数据的存储 6.1.2 基本数据类型 整型与整型常量(整数) 字符型与字符型常量 实型与实型常量(实数)
6.1.1数据的存储一整型数据 设整数在内存中用2个字节存储 1000000110000001 0000000110000001 符号位 1:负数 0:正数
6.1.1 数据的存储-整型数据 设整数在内存中用2个字节存储 1 000 0001 1000 0001 0 000 0001 1000 0001 符号位 1:负数 0:正数
数值的表示方法一原码反码补码 ■正数的原码、反码和补码相同 1的补码 0000000000000001 32767的补码0111111111111 (215-1,2个字节的存储单元能表示的最大正数) ■负数的原码、反码和补码不同 口原码1000000000000001 口反码111111111111110原码取反(符号位保持不变) 口补码11111111111111)码+1
数值的表示方法-原码 反码 补码 ◼ 正数的原码、反码和补码相同 1 的补码 0 000 0000 0000 0001 …… 32767 的补码 0 111 1111 1111 1111 (2 15-1,2个字节的存储单元能表示的最大正数) ◼ 负数的原码、反码和补码不同 -1 原码 1 000 0000 0000 0001 反码 1 111 1111 1111 1110 原码取反(符号位保持不变) 补码 1 111 1111 1111 1111 反码+1
原码反码补码 32767 补码0111111111111 -32767 ■原码1111111111111 ■反码10000000000原码取反(符号位保持不变) 补码100000000001反码+1 -32768=-32767-1 补码100000000000 (2个字节的存储单元能表示的最小负数
原码 反码 补码 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个字节的存储单元能表示的最小负数)
-32768 101 32767 32767+1=32768? 327670111111111111111 100000000000000=-32768 0000000000000001 00000000000000000 -11111111111111111 21111111111111110 -327671000000000000001 327681000000000000000 32768-1=-32769? 0111111111111111=32767
-32768 -1 0 1 32767 32767 0111 1111 1111 1111 …… 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
实型和字符型数据的存储 ■实型数据的存储 12345e+02 符号位阶码尾数 ■字符型数据的存储 个字节存储ASCI码。 例如字符型常量A的ASC码为65,它在内存 中以下列形式存放: 01000001
实型和字符型数据的存储 ◼ 实型数据的存储 -1.2345e+02 符号位 阶码 尾数 ◼ 字符型数据的存储 一个字节存储ASCII码。 例如字符型常量 'A' 的ASCII码为65,它在内存 中以下列形式存放: 0 1 0 0 0 0 0 1
612基本数据类型 ■整型 有符号整型无符号整型 数据长度 int unsigned [int] 16或32位 short [int] unsigned short [int] 16i long [int] unsigned long [int] 32/i 字符型 char8位 ■实型(浮点型) 单精度浮点型 float32位 双精度浮点型 double64位
6.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位