Day 7:运算符 (上)

初步了解

表达式:d = a + b * c

优先级:d = a + b * c(先b * c再+a)

结合性:d = b * c / 10(优先级相同时:确定表达式如何结合来确定执行顺序)

算数运算符

/(除)

运算符两边有一个浮点数则执行浮点数除法,否则执行整数除法。

%(取余)

运算符两边只能是整数。

举例:

应用举例:

开发版获取温度or时间值,如何拆解数字?如:温度43°。

43 / 10  = 4

43%10 = 3

赋值运算符

“ = ”:

将一个值赋给另外一个变量。

在C语言中,= 左边只能说一个变量名,不允许是表达式。如:x + 1 = x;(错误)

赋值复合运算符

优先级

无论是‘‘=’’还是赋值复合运算符,优先级都比较低(上表倒二),可参考初步了解中的图表。

注意:不确定运算符优先级时,可以通过()方式。

自增自减运算符

前置:++i、--i

后置:i++、i--

情况1:

如果上述作为单独语句,则没有什么区别

情况2:

应用于表达式中:

后置++
前置++

位运算符

C语言可以直接对二进制进行操作。

~(按位取反)

0变为1,1变为0。

注意:

1.按位取反只能用于整型数据。(如:浮点型数据无法使用按位取反)

2.按位取反一般情况下,会将数据的符号改变。

^(按位异或)

相异为真,相同为假。(理解为无进位相加会更好的帮助理解异或的性质)

同1异或,结果取反,同0异或,结果为原始值。


异或的性质

1. 0 ^ n = n //理解异或是无进位相加

2.a^b=b^a

3.a^b^c=a^(b^c)

经典应用:使用异或交换两个数(明天思考后自行补充代码)

&(按位与)

        两个运算对象都为1时,结果才为1。

        同1与,结果为原始数据,同0与,结果为0(快速置0)。

|(按位或)

        任何一个位为1,结果就为1。

        同1或为1(快速置1),同0或为原始值。

<<(左移)

        一般形式:x << n 。

        表示把x的每一位向左移动n位,右边空位补0。

>>(右移)

        一般形式:x >>  n 。

        表示把x的每一位向右移动n位,

        当 x 为无符号数时,左边空位补0,称为逻辑移位。

        当 x 为有符号数时,左边空位补最高位,称为算术移位。

位运算符应用

问题1:置1

给一个变量a(0xa2)不改变其他位的值,只改变第6位置1。

问题2:清0

给一个变量a(0xa4)不改变其他位的值,只改变第2位清0

问题3:翻转

给一个变量a(0xa4)不改变其他位的值,只改变第2位取反

复习记录

1.在位运算中,左移一位,其结果相当于操作数 * 2

                        右移一位,其结果相当于操作数  / 2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值