一、运算符
运算符:用于指明对于操作数的运算方式
1、运算符分类
1)按照操作数的数目分
单目操作符、双目操作符、三目操作符
2)按照运算符的功能来分
算术运算符、赋值运算符、关系运算符、逻辑运算符
2、运算符详解
1)算数运算符
| + 加法 |
| - 减法 |
| * 乘法 |
| / 除法 |
| % 取余数、取模 |
| ++ 自增 |
| -- 自减 |
| |
| x++:就是将x变量空间的内容先取出,常量区取出1进行计算,再次存回x空间 |
| 当在x想要做值的交换的时候会先产生一个临时的副本空间(备份一份) |
| ++在变量前面的时候先自增后备份,++在变量后面的时候先备份后自增 |
| 会将副本空间内的值赋给别人 |
2)赋值运算符
| = 赋值符号,将等号右边的内容存入=左边的变量空间内 |
| += -= *= /= %= |
| +=:加上一个数然后赋值给自身 |
3)关系运算符
| > >= < <= != == |
| 1.区分=和== |
| =是赋值符号,将=后面的结果存入=左边的变量的空间内 |
| ==比较符号,比较==前面和==后面的元素是否一致 |
| 2.比较运算符最终的结果是什么 |
| 用Boolean类型表示结果,true false |
| 用作一个条件的判定 |
4)逻辑运算符
| 逻辑运算符前后连接的两个结果为Boolean值 |
| 1、&逻辑与 |
| 两个条件同时满足,最终才为true,可以理解为中文“和”“并且”意思 |
| 2、|逻辑或 |
| 可以理解为中文的“或者”,前后两个条件只要有一个满足就为true |
| 3、^逻辑异或 |
| 前后的两个表达式结果不一致,结果就为true,(异或不同为1) |
| 4、!逻辑非 |
| 将原来的结果取反 |
| 5、&&短路与 |
| 当前面是true时,向后看,当前面为false时,直接短路 |
| 当前面的值结果为false的时候会发生短路, |
| 如果发生了短路情况,性能会比&稍微好点, |
| 从执行结果来看,最终结果来看没有任何区别,也就是只有前面的结果为false的时候性能才会提高 |
| 6、||短路或 |
| 当前面的结果为false的时候,向后看,当前面为true时,直接短路 |
5)位运算
| 1、&按位与 |
| 2、|按位或 |
| 3、^按位异或 |
| 例:3&5=? |
| 1)将3和5转化为二进制表示形式 |
| 2)竖着按照对应位置进行&|^计算(1当作true,0当作false) |
| 3)将计算后的二进制结果转化为十进制 |
| 4、~按位取反 |
| 就是取反码 |
| 5、<<按位左位移 |
| 就是以二进制形式向左位移,然后最后面填0,然后算出十进制 |
| 相当于这个数乘以2的位移次幂 |
| 6、>>按位右位移 |
| 以二进制向右位移,然后前面填0,相当于除以2的位移次幂 |
| 7、>>>按位右位移(无符号) |
| >>保留符号位置1 填1 |
| >>>不保留符号位置 不管是什么都填0 |
6)三目运算符
| 数据类型 变量名称 = 条件判断 ?表达式a :表达式b; |
| 如果判断条件成立为true,那么表达式a的值赋值给左侧变量 |
| 如果判断条件不成立为false,那么表达式的值赋值给左侧的变量 |
7)其他运算符
3、运算符优先级
| 括号 > 单目运算符 > */% > +- > 位运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?