C语言第二章数据类型及表达式解析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
13
2.1.3 字符型 ► C语言字符型分为有符号(signed char)和无符号 (unsigned char)两种,其中signed书写时可以省略。 ► 字符型数据在内存中占用1个字节,采用二进制形式存储。
12
2.1.2 浮点型
例2.1
15 return 0; 16 }
程序运行屏幕
a=111111.1093750000000000 , b=111111.1093750000000000 c=111111.1110067800000000 , d=111111.1110012300100000 e=100000000000000110000.000000
9
2.1.2 浮点型
► C语言浮点型又称实型,分为单精度(float)、双精度 (double)和长双精度(long double)3种。
► 在VC中规定float型在内存中占用4个字节,提供7位有效数 字;double型和long double型在内存中占用8个字节,提 供16位有效数字。在GCC中long double型在内存中占用12 个字节,提供19位有效数字。
3
2.1 数据类型 C语言内置数据类型
4
2.1 数据类型
表2-1 基本类型数据的内存长度和数值范围
类型
类型标识符
内存长度
整型
[signed] int
4
无符号整型
unsigned [int]
4
短整型
[signed] short [int] 2
无符号短整型 unsigned short [int] 2
3.41038 3.41038
1.710308 1.710308
同上/ 1.2104932 1.2104932
精度
7 16 19
5
2.1.1 整型 ► C语言整型分为长整型(long int)、基本整型(int)和短 整型(short int) ► long int可以简写为long、short int可以简写为short。 ► int型数据的内存长度与系统平台相关,通常int型为机器的 一个字长,short型不比int型长,long型不比int短。
11
2.1.2 浮点型
例2.1
1 #include <stdio.h> 2 int main() 3{ 4 float a=0.00000678f, b=0.00000123f; 5 double c=0.00000678 , d=0.00000123; 6 double e=100000000000000000000.0; 7 a = a + 111111.111f; //精度范围外的大浮点数与小浮点数相加 8 b = b + 111111.111f; //精度范围外的大浮点数与小浮点数相加 9 c = c + 111111.111; //精度范围内的大浮点数与小浮点数相加 10 d = d + 111111.111; //精度范围内的大浮点数与小浮点数相加 11 e = e + 111111.111f; //精度范围外的大浮点数与小浮点数相加 12 printf("a=%.16f , b=%.16f\n",a,b); //输出单精度浮点型a,b 13 printf("c=%.16lf , d=%.16lf\n",c,d); //输出双精度浮点型c,d 14 printf("e=%lf\n",e); //输出双精度浮点型e
长整型
[signed] long [int]
4
无符号长整型 unsigned long [int] 4
字符型
[signed] char
Baidu Nhomakorabea
1
无符号字符型 unsigned char
1
单精度型
float
4
双精度型
double
8
长双精度型
long double
同上/12
数值范围 -2147483648~+2147483647 0~4294967295 -32768~+32767 0~65535 -2147483648~+2147483647 0~4294967295 -128~+127 0~255
第2章 数据类型与表达式
1
第2章 数据类型与表达式
► 2.1 数据类型 ► 2.2 常量 ► 2.3 变量 ► 2.4 运算符与表达式 ► 2.5 类型转换
2
2.1 数据类型
利用计算机求解问题,首先需要将实际问题的数据引入到计算机 中,即在程序中描述这些数据。 由于计算机存储和处理上的特点,数据是以某种特定的形式存在 的(如整数、浮点数、字符信息等),不同的数据之间还存在某 些联系。 程序语言通过数据类型描述不同的数据形式,数据类型不同,求 解问题的算法也会不同。类型是所有程序的基础,它告诉我们数 据代表什么意思以及对数据可以执行哪些操作。
8
2.1.1 整型 ► 不同的数据类型规定了不同的机器数长度,决定了对应数 据的数值范围,当一个整数超出此范围时计算机会将其转 换为在数值范围内所允许的一个数,称为整型数据的溢出 处理。 ► 一般地,超过最大值的有符号整型数值会向上溢出变成负 数,超过最小值的数据会向下溢出变成正数。
图2.2 short型的溢出
6
2.1.1 整型 整型数据的存储方式为二进制补码形式,例如短整型数123在内 存中的存储形式为 短整型数-123在内存中的存储形式为
7
2.1.1 整型 整型还分有符号(signed)和无符号(unsigned)类型,其中 signed书写时可以省略。
图2.1 有符号和无符号短整型的数值范围
一般地,由于计算机处理整型速度快,因此若运算不涉及小数, 就尽量选用整型。而那些没有负值的整数,如学号、逻辑值、字 节值、地址、索引值等选用unsigned类型。
► 浮点型数据在内存中的存储方式按IEEE 754浮点数标准处理, 不同于整型数据那样直接的二进制表示。
10
2.1.2 浮点型 ► 因为浮点型数据长度和精度是有限的,所以浮点数存在舍 入误差和计算误差。虽然浮点数精度越高计算结果越精确, 但其处理时间也长。
一个较大的浮点数与一个很小的浮点数做加法时,由于精度限制 使得很小的浮点数被忽略了,从而使得这样的加法无意义。 两个浮点数做比较,由于有误差很难做到绝对相等,只能通过它 们差的绝对值小于一个很小的数来判断是否近似相等。