异或、左移、右移到底该怎么用
1.友情链接
屏幕前的大帅比和大漂亮如果有帮助到你的话请顺手点个赞、加个收藏这对我真的很重要。别下次一定了,都不关注上哪下次一定。
2.算数运算符
2.1单目
- 按位取反(~):二进制表示1变成0,0变成1。即用-1减去待取反的数即为按位取反的结果:-1-9=-10
- 负号运算符(-):就是负数
- 自增(++):++i表示先自己加1再赋值
- 自减(--):--i表示先自己先减1再赋值
2.2双目
在A,B,n>0时,B为2^n可以使用其他操作符,但不要为了用而用,让代码变得难懂,除非做底层,否在不建议业务代码使用
- 加(+):四则运算加
- 减(-):四则运算减
- 乘(*):可用A << n,四则运算乘
- 除(/):A >> n,四则运算除
- 取余(%):A&(B-1)
2.3三目
- a>b?true:false
3.关系运算符
- 等于符号(==):等于
- 不等于符号(!=):不等于
- 大于符号(>):大于
- 小于符号(<):小于
- 大于等于符号(>=):大于等于
- 小于等于符号(<=):小于等于
4.位与逻辑
4.1位运算符
- 与(&):逐位比较两个操作数中位都为1,结果才为1,否则结果为0
- 非(~):逐位自己的运算符,0则为1,1则为0
- 或(|):逐位比较两个操作数中只要有1个为1,结果为1,否则结果为0
- 异或(^):逐位比较两个操作数,相同即为0,不同则为1。以动态规划算法,可以迅速判断是否仅仅是进行了交换,或者从偶数项里面找到唯一的奇数项等
4.2逻辑运算符
- 与(&&):数学上的交集
- 非(!):取反
- 或(||):数学上的并集
5.赋值
- 等于(=):将运算结果或者内存地址给到符号引用
- 加等于(+=)、减等于(-=)、乘等于(*=)、除等于(/=)、取余等于(%=):基本无应用场景、与等于(&=):基本无应用场景、异或等于(^=)、或等于(|=):基本无应用场景、左移等于(<<=):基本无应用场景、右移等于(>>=)
6.位移
- 带符号左移<<: x<<y 相当于x*2y
- 带符号右移>>: x>>y相当于x/2y
- 无符号左移<<<
- 无符号右移>>>