目录
前言
——C语言中支持下面四种类型的运算
一、四则运算
1. 四则运算的概念
—四则运算运算符有 +,-,*,/,%等
—四则运算就是数学中的加,减,乘,除等运算
—四则运算遵循先乘除后加减的运算优先级
2. 注意事项
C语言中的除法运算,其除数不能为0!!!
3. 小结
(1) 整数型的除法运算结果会舍弃小数部分
(2) 取余(%)运算也是一种除法运算,结果为余数
(3) 浮点数不能进行取余运算
二、关系运算
1. 关系运算的概念
—关系运算有<,>,<=,>=,==,!= 等
—关系运算是比较两个值大小关系或相等关系的运算
—关系运算比较的结果为逻辑值:真(1),假(0)
三、逻辑运算
1. 逻辑运算的概念
—逻辑运算有&&,||,!等
—逻辑运算的参与者为逻辑值(真或假)
—任何非零值在逻辑运算中都为真
—任何零值在逻辑运算中都为假
2. 逻辑运算中的短路法则
(1)对于&&运算
—从左到右进行,如果有一个操作数为假,则整个表达式为假
—第一个为假的操作数之后的操作数不再计算
(2)对于 || 运算
—从左到右进行,如果有一个操作数为真,则整个表达式为真
—第一个为真的操作数之后的操作数不再计算
3. 取非运算( ! )
——单目运算(只需要一个操作数),运算结果为逻辑值
—对真值取非的结果为假
—对假值取非的结果为真
四、位运算
1. 位运算的概念
—位运算有&,|,~,^,<<,>> 等
—位运算的基本单位是二进制位,所以也是一种0和1的操作
—可以使用括号来改变位运算的运算顺序
—位运算的操作数只能是整数型(浮点数不能直接进行运算)
注意:
1. 按位与和逻辑与的计算法相同:两值为1,结果为1,否则为0
1. 按位或和逻辑或的计算法相同:两值为0,结果为0,否则为1
示例自己运算
2. 深度剖析位运算
(1)再论数据类型
short和int的表示范围不同,其本质差异是什么?
不同类型的本质在于:
——占用的内存大小不同
如short占用2字节,int占用4字节
——表示具体数据的方式不同
正整数用原码表示,负整数用补码表示
整型数和浮点数的二进制表示不同
(2)所以位运算时需要明确知道的事
—操作数的类型(占用字节的大小)
—操作数是正数还是负数(符号位,数据表示)
—不同类型的操作数先自动对齐再进行位运算(补符号位)
(3)类型补充知识——char字符型
—char是字符型,一个字节的整型,范围为[-128, 127]
—字符数据(单引号括起来的字符)的本质是整数型
—char类型的变量可以打印为整数或者字符
3.小结
(1)位运算直接对数据的二进制进行操作
(2)位运算的操作数只能是整数型(浮点数不能直接进行位运算)
(3)正数符号位为0,右移运算时,高位补0,低位移除
(4)负数符号位为1,右移运算时,高位为1,低位移除
(5)左移运算时,最高位移除,低位补0
(6)最高位的具体位置,由数据类型决定
五、总结
1.可以使用括号改变运算顺序
2.不同的运算优先级不同,可以用括号来改变运算优先级
3.如果不同类型的运算同时出现在一个表达式中,那么尽量用括号来指明运算关系
4.运算优先级