Advertisement

C语言运算符和表达式——算术运算符

阅读量:

目录

运算符(Operator)的分类

根据运算性质

根据运算所需的对象(操作数个数)

表达式(Expression)

操作数(Operand)

算术运算符(Arithmetic Operators)

除法:

求余:

算术表达式的优先级

算术表达式的结合性

实例——分离数位

如何进行更复杂的数学运算呢?


运算符(Operator)的分类

根据运算性质

*赋值运算符

*算术运算符

*增1和减1

*类型转换

*关系运算符

根据运算所需的对象(操作数个数)

*一元(单目)运算符

*二元(双目)运算符

*三元(三目)运算符

表达式(Expression)

操作数(Operand)

*运算对象(常量、变量、函数)

算术运算符(Arithmetic Operators)

除法:

算术表达式

11/5=2 11.0/5=2.2

整数除法 浮点数除法

(Integer Division) (Floating Division)

*a and b are integers *a or b or both are floats

求余:

算术表达式

操作数必须是整数,返回a与b相除之后的余数(Remainder)

11%5=1 11%(-5)=1 (-11)%5=-1

算术表达式的优先级

问题:当算术表达式包含多个运算符时,如何确定运算顺序?

*出现不同类型的运算符时

*运算符的优先级(Order of Precedence)——从高到低运算

算术表达式的结合性

问题:当算术表达式包含 多个运算符时,如何确定运算顺序?

两类运算符的优先级相同时

*运算符的结合性(Associativity)

*左结合——从左向右计算 →

*右结合——从右向左计算←

*巧妙使用圆括号改变运算顺序——从内往外运算

实例——分离数位

问题:输出一个三位整数的个位、十位、和百位数字

关键:如何分离个位、十位、百位数字?

个位:例——153%10=3 153-1100-510=3

十位:例——153%100/10=5 153/10%10=5

百位:153/100=1

问题:求余运算还有什么用

对p求模取余:H(k)=k%p

*将一个大范围的自然数集合映射到一个只有p个元素的小集合上

随机函数rand()

*生成一个在0~32767之间的随机数

问题:如何生成一个指定范围(如 1~100)内的随机数?

*magic=rand()%100; //0~99

*magic=rand()%100+1; //1~100

如何进行更复杂的数学运算呢?

常用的标准数学函数

#include <math.h>

全部评论 (0)

还没有任何评论哟~