一、操作符的分类
- 算数操作符:+、-、*、/、%
- 移位操作符:<< >>
- 位操作符:&、|、^
- 赋值操作符:=、+= 、-= 、*=、/= 、%=、<<=、>>=、&=、|=、^=
- 单目操作符:!、++、--、&、*、+、-、~、sizeof
- 关系操作符:>、>=、<、<=、==、!=
- 逻辑操作符 :&&、||
- 条件操作符:?、:
- 逗号表达式:,
- 下标引用:[ ]
- 函数调用:()
- 结构体访问:. 、->
二、原码、反码、补码
正整数
正整数的原码、反码、补码都相同。
负数
原码:直接将数值按照二进制形式得到的就是原码
反码:将原码的符号位不变,其他位依次按位取反
补码:反码+1
tips:补码得到原码可以使用取反,+1。(个人习惯,嘿嘿)
三、移位操作符
左移操作符 <<
左边抛弃,右边补0。
假如10的二进制是1010,左移后变成10100。
右移操作符 >>
左边用原该值的符号位填充,右边丢弃。
原理和左移差不多。
警告!警告!移位操作符的操作数只能是整数。
四、位操作符
&:按位与 (全是1为1,否则为0)
| :按位或 (只要有1为1,全为0为 0)
^ : 按位异或(相同为0,相异为1)
~ :按位取反
注:上述是对二进制的操作符
warn!warn!他们的操作数必须是整数。
五、逗号表达式
就是用逗号隔开的多个表达式。
从左到右依次执行。整个表达式的结果是最后一个表达式的结果。
六、结构体访问
略略略,以后会花大篇幅讲这个。这里就不多说了。
七、操作符的优先级、结合性
嗨嗨,从网上偷的。
还有一个
15:,逗号,左到右
谢谢大家的点赞和关注
QAQ