小伙伴们大家好呀,因为最近开始学习另一个方向的新内容,这两个同时进行,发布的可能会有些晚,但是能协调过来,不会影响,大概和之前一样,话不多说,开始今天的学习。
本篇使用方法:
一 ~ 四 按照运算符的优先级来写,五是对前面未提到的一些内容做补充, 一 ~ 三 和 五 并不冲突,大家可以根据自己喜好来看。
一、单目运算符
++:有a++和++a之分
-- :有a--和--a之分
* :取值(和指针有关,后续写到指针会说明用法)
& :取地址
!:逻辑非
~ :按位取反
- :负号运算符
PS:这里和大家说一下大家可能不太了解的
1.++ 和 -- 如果是 b = a++ 或 b = a-- ,那么就是先赋值再运算(只要把原先a赋值给b,a就 加/减 1),如果是 b = ++a 或 b = --a ,那么就是先运算再赋值(把 加/减 1后的结果赋值给b)
2. & 这个符号,我们经常在输入见到,实际它的意思就是你要取一个空间地址来存放你输入的值
3.! 在计算机中一般 0 为假,非 0 为真,而逻辑非表示语句为真返回 0 ,语句为假返回 1 ,真假相反
4.~ 跳到本文最后观看(因为这个牵扯到二进制,本文顺序按照优先级书写,这个符号和后面的几个符号配合一起看,效果会更好)
二、双目运算符
+ - * / %
加 减 乘 除 取余
PS:上述加减乘除取余的优先级为 ( * = / = % ) >( + = - )
<< >>
左移 右移
PS:左移右移跳到本文最后观看
> >= <= < == !=
大于 大于等于 小于等于 小于 等于 不等于
PS:本行较为常见,就不在说明(就是比大小)
^ | && ||
按位异或 按位或 逻辑与 逻辑或
1.跳到本文最后观看
2.跳到本文最后观看
3. && 左右语句都为真时,返回 1 ,并且如果前面有一个语句为假,后面不做判断
4. || 左右语句有一个真就返回 1 ,并且如果前面有一个语句为真,后面不做判断
三、三目运算符
?:
这里它的意思是 表达式?如果表达式成立就输出这里: 如果表达式不成立就输出这里
四、其它
假设有两个变量a,b
= 赋值
/= a/=b 等价于 a=a/b
*= a*=b 等价于 a=a*b
%= a%=b 等价于 a=a%b
+= a+=b 等价于 a=a+b
-= a-=b 等价于 a=a-b
<<= a<<=b 等价于 a=a<<b
>>= b>>=b 等价于 a=a>>b
&= a&=b 等价于 a=a&b
^= a^=b 等价于 a=a^b
|= a|=b 等价于 a=a|b
五、解释上文跳到最后看的内容
<< >> ~ ^ | &
左移 右移 按位取反 按位异或 按位或 按位与
前提知识:我们知道计算机中的信息由二进制组成,有三种形式,那就是原码、补码和反码
原码:最高位是符号位,0代表正数,1代表负数(非符号位为该数字绝对值的二进制 -> 这里本篇不用这个)
反码:正数的反码为原码本身,负数的反码是对原码按位取反,两者最高位(符号位)不变。
补码:正数的反码补码为它本身,负数的补码为原码的反码+1
【eg】以8位举例
1. << 左移操作符
二进制整体向左移一位,左边的就去掉,右边补0
2.>>右移操作符
逻辑右移:左边用0填充,右边丢弃
算术右移:左边用原该值的符号位填充(意思是原来是正数,结果还是正数;原来是负数,结果还是负数),右边扔掉
3. ~ 按位取反
二进制 0 变 1 ,1 变 0
4. ^ 按位异或
两个整数的二进制,两个位不相同为 1 ,其它为 0
5. | 按位或
两个整数的二进制,两个位有一个为 1 则为 1 ,其它为 0
6.&按位与
两个整数的二进制,两个位只有相同为 1 ,其它为 0
今天学习内容就到此结束啦,是不是解决了平时看不懂代码的疑惑呢,学习是个缓慢的过程,希望和大家一起坚持,能多学一点是一点。
“认清明天的去向,不忘,昨天的来处”