数据类型及运算
二、C语言数据类型和运算符号

意义: 意义:可提高执行效率.
4, 3
基本运算符使用注意事项
算术运算符和算术表达式 注意以下几点: ⑴ 两个整数相除结果为整数,如5/3的结果为1.如果参加 两个整数相除结果为整数,如5/3的结果为1 运算的两个数中有一个数为实数,则结果是double型. 运算的两个数中有一个数为实数,则结果是double型. ⑵ 模运算符%,又称求余运算符,要求%两侧均为整型数据, 模运算符%,又称求余运算符,要求% 如7%4的值为3;而且余数的值符号与被除数一致,如- 7%4的值为3 7%- 的值为-3 7%-4的值为-3. ⑶ 运算符"+ +"是操作数加1,而"--"是操作数减1, 运算符" +"是操作数加1,而"--"是操作数减1 只适用于变量,不能用于常量或表达式.
21/25 21/25
举例:写出下列表达式的值 若有定义:int a=3, b=2, c=1; char ch1='a'; 1) b+c!=a 2) ch1<'b' 3) a%2==0 4) (a>b)>(b<c) 5) a>b>b<1 6) a>b==c 7) f=a>b>c
22/25 22/25
基本运算符使用注意事项
基本算术运算符: + 加 / 取正 (双目运算符 / 单目运算符) - 减 / 取负 (双目运算符 / 单目运算符) * 乘 (双目运算符) / 除 (双目运算符) % 整除取余 (双目运算符) 注意: 1)两整数相除结果仍为整数 如:5/2 2 -5/3 -1 1/2 0 要依实际应用情况加以利用或避免. 2)求余运算要求两运算元素均为整型,余数仍 为整型; 如:int a, b; a=11%3; /*2 a*/ b=5%a; /*1 b*/ 若有: a=11.0%3; 编译时将视为语法错.
c语言不同数据类型间的混合运算转换规则+常见数据类型

c语言不同数据类型间的混合运算转换规则+常见数据类型C语言中,不同数据类型之间的混合运算会按照一定的规则进行自动转换,具体规则如下:1. 整数和浮点数运算:- 如果一个操作数是浮点数,那么另一个操作数也会被转换为浮点数,然后进行运算。
- 如果一个操作数是整数,而另一个操作数是浮点数,那么整数会自动转换为浮点数,然后进行运算。
2. 整数之间的运算:- 如果两个操作数的类型相同,那么不需要进行任何转换,直接进行运算。
- 如果两个操作数的类型不同,那么会将较低精度的操作数自动提升为较高精度的类型,然后再进行运算。
常见的C语言数据类型包括:1. 整数类型:- char:1字节,有符号或无符号的整数。
- short:2字节,有符号或无符号的短整数。
- int:2或4字节,有符号或无符号的整数。
在不同系统中,其长度可能会有所不同。
- long:4或8字节,有符号或无符号的长整数。
在不同系统中,其长度可能会有所不同。
2. 浮点数类型:- float:4字节,单精度浮点数。
- double:8字节,双精度浮点数。
- long double:8字节以上,长双精度浮点数。
3. 其他类型:- void:空类型,用于标识无返回值或不可具体化的函数。
- bool(C99标准引入):用于表示布尔值,取值为true或false。
- 数组类型、指针类型、结构体类型、枚举类型等。
需要注意的是,在进行混合运算时,应尽量避免不必要的类型转换,以免影响程序的可读性和正确性。
同时,对于可能引起精度丢失的情况(如整数与浮点数之间的运算),需注意选择合适的数据类型和进行必要的类型转换。
3 数据类型.运算符与表达式

C语言程序设计
第6页
符号常量
一般来说,下列两种情况用符号常量比较方便。 1)当某一常数在程序中多处出现时,可事先定义一个符 号常量。 2)有时,程序中的常数是有意义的,但写一个具体数字,程 序的阅读者则很难明白该常数的意义,此时可定义一个符 号常量。 例如: # define PI 3.1415926 注意:1)表示常量的标识符一般用大写 2)不能给符号常量赋值 PI=6; 错误 思考题:使用符号常量的好处? 含义清晰;一改全改
C语言程序设计
第14页
3.4 实型数据 3.4.1 实型常量
注意:1)没有unsigned和signed 之分。 2)实型常量没有单、双精度数之分;但可以赋给 一个float型或double型变量。赋值时要注意有效 数字位数。 float a; a=12345.6789 (只能接受前7位) 3)C编译系统将浮点型常量作为双精度来处理
C语言程序设计
第11页
3.3.2 整型变量
有三种整型变量(int、short int、long int): 但也可以将变量的类型定义为无符号(unsigned int) 1)有符号基本整型:signed int signed int 2)无符号基本整型:unsigned int 3)有符号短整型: signed short int signed int 4)无符号短整型: unsigned short int unsigned short 5)有符号长整型: signed long int signed long long 6)无符号长整型: unsigned long int unsigned long
THE C PROGRAMMING LANGUAGE
第二讲.+基本数据类型及运算

第二章 基本数据类型及运算
1. 计算机结构 2. 计算机的数据运算 3. 计算机中数据存储方式 4. 程序设计中的基本数据类型 5. 程序设计数据输入及输出方法 6. 程序设计中的基本数据类型的运算
计算机存储的层次
• 计算机存储的层次
处理器 控制器 二级缓存 (SRAM) 主存 (DRAM) 外部 存储器 (磁盘)
二进制的加法表
• 二进制加法 A B 0 0 0 1 1 0 1 1 SUM 0 1 1 0
• 逻辑运算:与、或、非预算
SUM = + AB = ⊕ B AB A
计算机的数据运算
• 考虑进位的1位加法器
SUM
A 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
C 0 1 0 1 0 1 0 1
浮点型数据
• 科学计数法:
– 0.0000000714566778=7.14566778e-8
• 采用浮点方法移动小数点位置,可以用有限位数存储最高 精度的数据 • IEEE754的单精度和双精度浮点数格式,基为2
符号位 指数部分 尾数部分(无符号数)
– 尾数部分表示小数点后的数字,小数点前固定为1 – 单精度浮点数(float):符号位1位,指数位8位,尾数23位 – 双精度浮点数(double):符号位1位,指数位11位,尾数52位
单字符输入
C程序设计中的变量
• C程序中的变量表示程序中需要存储的数据对象,对应内 存中的存储空间 • 变量用变量名来标识
– 变量名以下划线或字母开头,后接0个或任意多个字母、数字和下 划线,C程序中的关键字不能用来命名变量(关键字见教材14页)
• 有效变量名:a, _b, c1_2 • 无效变量名:2a, &c, $d1
数据类型与运算符

数据类型与运算符
本章要点
目标
理解:常量、变量和表达式。 掌握:Java中的八种原始数据类型。 掌握:运算符和表达式的应用。
重点
掌握:熟练使用整型、浮点型、字符型常用的数据类型的定义,表示 和引用。 掌握:算术运算符、关系运算符和逻辑运算符的应用。 掌握:自增、自减运算符的不同用法。
用4位16进制数表示字符
双引号 单引号 反斜线 用3位8进制数表示字符
数据类型与运算符
2.3 运算符和表达式
运算符是表明作何种运算的符号。 操作数是被运算的数据。 表达式是由操作数和运算符组成的式子。 表达式的运算结果称为表达式的值。 Java提供的运算符,按操作数的数目来分,可有: 一元运算符:需要一个操作数。++i,--i,+i,-i 二元运算符:需要二个操作数。a+b,a-b,a>b 三元运算符:需要三个操作数。表达式1 ?表达式2 : 表达式3
数据类型与运算符
2.2数据类型
每个数据类型都有一个值域,或者叫做范围。编译器根据变量或常 量的数据类型对其分配存储空间。Java为数值、字符值和布尔值数 据提供了几种基本数据类型。Java语言的数据类型划分如图2-1。
字节型byte
整数类型 短整型short 整型int 长整型long 基本数据类型 浮点类型 数据类型 字符类型char 布尔类型boolean 类class 单精度浮点型float 双精度浮点型double
若运算符是前置于变量的,则变量先加1或减1,再参与表达式中的运算。 若运算符是后置于变量的,则变量先参与表达式的运算,再加1或减1。 例如:
二、数据类型及运算

1C 2C 3A 1、下列选项中可以作为C语言中合法整数的是: A 10110B C 0xffa A 复数型 C 双精度型 A 32768 C 037 B 0386 D x2a2 B 逻辑型 D 集合型 B0 D 0xAF
2、以下选项中属于C语言的数据类型是:
3、在下列选项中,不正确的int类型的常数是:
3、变量
概念: 概念:其值可以改变的量 每个变量有一个名字:用标识符表示。 每个变量有一个名字:用标识符表示。 名字 每个变量有一个存储空间(存储单元), ),该单 每个变量有一个存储空间(存储单元),该单 存储空间 元中的状态所表示的数为此时变量的值。 元中的状态所表示的数为此时变量的值。 变量的使用:先定义, 变量的使用:先定义,后使用
实型变量
实型变量的说明形式如下: 实型变量的说明形式如下 float 变量名 ,变量名 ,…… 变量名 ; 变量名1[,变量名2, 变量名n]; double 变量名 ,变量名 ,…… 变量名 ; 变量名1[,变量名2, 变量名n]; float: 占4字节,提供 位有效数字 字节, : 字节 提供7位有效数字 double:占8字节,提供 字节, : 字节 提供15~16位有效数字 位有效数字 例 float a; float a,b,c; a=111111.111; double x,y; double b; b=111111.111; /* a=111111.1*/ /* b=111111.111*/
整型常量
(1) 整型常量就是整数,包括正整数、负整数及0; (2) 整型常量有三种书写方式 十进制整数: 0、 -111、 +15、21 八进制整数: 00、 -0111、+015、021 十六进制整数:0x0、-0x111、0x21 0x0 -0x111 0x21 (3) 整型常量在机内存放一般占2个字节,所表示的 范围-32768~+32767 (4) 为了扩大数值范围,C语言提供“长整型常量”, 长整型常量在机内存放占4个字节。表示方法是在数 的后面加一个L或l字母。(0L、40000L)
fixdt不同数据类型运算规则

fixdt不同数据类型运算规则
在编程中,不同数据类型的运算规则是由编程语言规定的。
以下是一些常见编程语言中不同数据类型的运算规则的示例:
1.整数运算:整数之间的运算结果仍为整数。
例如,整数相加、相减、相乘的结果仍是整数。
2.浮点数运算:浮点数之间的运算结果为浮点数。
例如,浮点数相加、相减、相乘的结果为浮点数。
3.整数和浮点数之间的运算:整数和浮点数之间的运算结果为浮点数。
例如,整数和浮点数相加、相减、相乘的结果为浮点数。
4.字符运算:字符之间的运算规则取决于编程语言。
例如,在某些编程语言中,字符可以通过ASCII码进行运算。
5.字符串运算:字符串之间的运算规则取决于编程语言。
通常,字符串可以进行连接运算,即将两个字符串连接在一起。
6.布尔运算:布尔值之间的运算结果为布尔值。
例如,布尔值可以进行与、或、非等逻辑运算。
需要注意的是,不同编程语言对于不同数据类型的运算规则可能略有差异,具体的运算规则可以参考对应编程语言的文档或规范。
C语言第02章 数据类型、运算符与表达式

回到 首页
运算符和结合性 P325,附录3
2.8 算术运算符和算术表达式
3、自增、自减运算符
自增运算符++和自减运算符--均是单目运算符, 功能是使变量的值增1或减1。其优先级高于所有 双目运算符,结合性为右结合性(自右至左)。
回到 首页
例如:++i或i++ 等价于i=i+1; --i或i-- 等价于i=i-1;
2.7数值型数据之间的混合运算
回到 首页
1、整型、实型、字符型数据之间可以混合运 算
整型(包括int,short,long)和实型(包括float,double)数据可 以混合运算,另外字符型数据和整型数据可以通用,因此,整 型、实型、字符型数据之间可以混合运算。 例如,表达式10+'a'+1.5-8765.1234*'b'是合法的。
2.9赋值运算符和赋值表达式
1、赋值运算符和赋值表达式
赋值运算符:“=”为双目运算符,右结合性。 赋值表达式:由赋值运算符组成的表达式称为赋值表达 式。 赋值表达式一般形式: 变量 赋值符 表达式 如 a=5 类型转换:将高精度的数据类型赋值给低精度的数据类 型,可能出错。
回到 首页
2.9赋值运算符和赋值表达式
2.8 算术运算符和算术表达式
3、自增、自减运算符
回到 首页
y=++x;等价于先计算x=x+1(结果x=6),再执行y=x,结果y=6。 y=x++;等价于先执行y=x,再计算x=x+1,结果y=5,x=6。 y=x++*x++;结果y=25,x=7。x++为后缀形式,先取x的值进行“*” 运算,再进行两次x++。 y=++x*++x;结果y=49,x=7。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
内存中存储形式
负数的补码 =反码+1 =原码取反+1
内存中存储形式 10
A B
整型数据在内存中的存储形式
----以有符号 2 字节整型为例 32767(215-1)的 16位编码 原码:01111111 11111111 反码:01111111 11111111 补码:01111111 11111111 内存中存储形式 -32767(1-215)的 16位编码 原码:11111111 11111111 反码:10000000 00000000 补码:10000000 00000001 内存中存储形式
A B
空类型void 3
3.2~3.3(1) 常量与简单变量–以数值型为例
• 常量: 在程序运行中,其值不变的量,如: 23.7, - 67 等。 • 变量: 在程序运行过程中,其值可以改变的量, 在内存中占据一定的存储单元。
变量a 150 50
A B
4
一、两类常量
常数常量和符号常量 常数常量 如-10, 3.14 符号常量: 用标识符表示的常量。符号常量用 预处理(宏定义)命令定义在函数之外。 定义形式: A B
A B
14
(三)整型变量的定义
整型变量的定义形式: 整型类型名 变量名1,变量名2,……,变量名n;
如:int a,b,c;
A B
15
五、浮点型数据
类型
单精度 双精度 长 双精度
类型名
float do字节 8字节 10字节
绝对值范围
3.4*10-38~ 3.4*1038 1.7*10-308~1.7*10308 3.4*10-4932~3.4*104932
INT
√ × “.”不能作标识符 √ × “-”不能作标识符 √ × 不能以数字开头 × 关键字不能作标识符 √
8
A B
四、整型数据
类型
(有符号) 短整型 (有符号) 长整型 无符号 短整型
类型名
[signed] short int 简称 short TC的基本整型 int [signed] long int 简称 long VC的基本整型 int unsigned short int
注意: 语言标识符中大、小字母有区分。 注意:* *C C 语言标识符中大、小字母有区分。 * “ 简单明了 ” 、 “ 见名知意 ” 。 * 命名尽量做到 命名尽量做到 “ 简单明了 ” 、 “ 见名知意 ” 。 7
A B
判断下列用户标识符的合法性:
a1 a_b a-b abc123 3rd_row int
A B
#include <math.h>
函数原型 double log(double x) double log10(double x) double sqrt(double x) 功能 计算 lnx (自然对数) 计算 lgx (常用对数) 计算 x
#include <stdlib.h>
功能 产生一个0到32767之间 int rand(void) 的伪随机整数 用参数seed作随机数种 void srand(unsigned seed) 子,设置伪随机数序列的开 始点 23 函数原型
A B
三、C 语言的标识符 [P28]
标识符: 用来标识变量名、符号常量名、函数名、 数组名、类型名的有效字符序列。 标识符命名规则: ① 由字母、数字、下划线组成,且只能以字母或 下划线开头; ② 关键字不能作为标识符;( C语言的关键字共有32 个,见P306附录B) ③ 不同系统对长度有不同的要求, VC要求长度不 超过247个字符。
有效位数 7 16 19
注:浮点型数据在计算机中按规范化 浮点数形式存储,例如:
数 符 尾 数 指数 符号 指 数 16
A B
(一)浮点型常量的表示形式
1、十进制小数形式: 如: 5.123(默认为double型),2.45F(指定为float型) 0.123可表示为.123, 123.0可表示为123. 底数10用e或E表示 2、十进制指数形式:如:123e2,2.45E-2
内存中存储形式
A B
补码没有-0
补码:10000000 00000000 被定义为-215即-32768
12
(二)整型常量的表示方法
int型常量的表示方法: 十进制: 如: 123 , 0 , -125 八进制: 以数字 0 开头,如:0102
表示1*82+2=(66)10
十六进制: 以 0x 或 0X 开头(0为数字) A B
表示:123*102 ,2.45*10-2 其中,123、2.45 称为尾数部分,2、-2 称为指数部分。 注意:尾数部分不能空,指数部分必须为整数。 例如:
A B
e+3、2.03e+0.5 都是错误的!
17
(二)浮点型变量的定义
浮点型变量的定义形式: 浮点型类型名 如: float 变量名1,变量名2,……,变量名n; a, b, c;
B
9
(一)整型数据在内存中的存储形式
----以有符号 2 字节整型为例 10 的 16位编码 原码:00000000 00001010 反码:00000000 00001010 补码:00000000 00001010 -10 的 16位编码 原码:10000000 00001010 反码:11111111 11110101 补码:11111111 11110110 正数的补码 =反码=原码
转义 字符
A
B
26
常用的整型输出格式控制符
输出格式符 含义 以十进制形式输出 int型 以十进制形式输出 unsigned int型 以八进制形式输出 int或unsigned int型 以十六进制形式输出 int或unsigned int型
%d %u %o %x(%X) A
%ld、%lo、 以十,八,十六进制形式输出 long型 %lx(%lX) 例:int i=15; printf("%d %o %x", i, i, i); 输出: 15 17 f
一个或多个输出项组成 ( 多个之间用逗号隔开 ) ,常量、 变量、函数、表达式等均可做输出项。
二、格式控制串 组成:
1.“%”起头的输出项格式控制符(与输出项一一对应) 2.普通字符(原样输出) 3.反斜杠“\”起头的转义字符 25
A B
例:#include <stdio.h> 格式控制符与输出项 int main( ) 一一对应 { int a,b,sum; a=123; b=456; sum=a+b; printf(”a=%d ,b=%d ,c=%d\n”, a, b, sum); return 0; 原样 输出 } 结果: a=123 ,b=456 ,c=579 (换行)
21
A B
3.4.2 常用的数学函数
#include <math.h>
函数原型 double sin(double x) double cos(double x) double tan(double x) int abs(int n) double fabs(double x) long labs(long j) double exp(double x) double pow(double x, double y) 功能 计算 sinx 计算 cosx 计算 tgx 计算 |n|,n为整数 计算 |x|,x为浮点数 计算 |j|, j为长整型 计算 ex, e为自然数 计算 xy 22
13
如:0X42
表示4*16+2=(66)10
0xA2F 表示10*162+2*16+15=(2607)10
整数常量的后缀: (1)整数常量后面加字母 l 或 L ,则指定该整 数为long型 如 -123l ,0x42L (2)整数常量后面加字母 u 或 U,则指定该整 数为unsigned型 如 123u ,0102U
长度
2字节
表示范围
-215~(215-1) 即-32768~32767 -231~(231-1) 约-2.1*109~2.1*109 约-21亿~21亿 0~(216-1) 即 0~65535
4字节
2字节
A
无符号 0~(232-1) unsigned long int 4字节 约0~4.3*109 长整型 注:1)int取自integer 2)有符号整数在计算机中按定点整数的补码存储。
第三章 数据类型、运算符与表达式
3.1 C语言的数据类型 3.2 常量 3.3 简单变量 3.4 库函数 3.5 运算符和表达式
数据类型 数值类型及其输入输出 及其 字符类型及其输入输出 输入输出 字符串及其输入输出
分块讲解
算术运算、赋值运算、强制类型转换、增量运算 关系运算、逻辑运算、条件运算 运算符和 逗号运算 表达式 位运算 求字节数运算 1
A B
第三章(1) 数值类型及其输入输出
3.1 C语言的数据类型
3.2(1) 常量 –––以数值型为例 3.3(1) 简单变量 –––以数值型为例 A B
2
3.4(1) 数学函数、格式输入输出函数
–––以数值型为例