课程名称: 物联网/嵌入式工程师
课程章节: 第一周 计算机基础和C语言
主讲老师: 大白老师
课程内容:
今天学习的内容有:逻辑运算符的易错点以及位运算符。
课程收获:
复习的时候发现逻辑运算符有个易错点一直没有注意,这个知识点看上去是很简单,也会有很多人一带而过,但小问题还是不能忽视。
逻辑运算符中&&和||有个特性,老师称之为**短路特性
&&:表达式1为假,表达式2不会执行
||: 表达式1为真,表达式2不会执行
简单的知识点,没事多看两眼总是好的
接下来说位运算符的重要知识:
首先不能乱的是^(按位异或),相同为0,不同为1
为了防止混淆可以看几个例子:
a^a=0
a^0=a
&和|没有什么难点就不赘述了。
<<:
<<3就是左移三位,无论是正数还是负数,左移都是对应的二进制位向左移动高位丢弃,低位补0 。左移的时候,等价于将这个数据乘以2的n(移动的位)次方.
>>:
不同于左移,右移要注意:负数右移,最低位舍弃,高位补1。正数右移,补0。
位运算符大概知道这些也差不多了吧,听了一个相关的笔试题挺好的,分享出来:
如何不借助第三方变量,把a,b的值交换
这就是利用位运算交换值,可以拿笔算算,不要手懒,拿起笔才知道这是怎么回事(如果是天才另说…)
但只有这种办法吗,当然不是,经过我的查阅发现还可以变量本身交换数值:
b = (a + b) - (a = b);
挺厉害的,或者可以用指针来进行操作,这里不过多说了。
说点题外话:
如果想要快速提高自己的实力就不能一直去想,一直想反而会急功近利,学术不精,竹篮打水一场空。最好的办法还是永远保持好奇心,永远积极,永远期待明天。