这里对日常开发中经常用到的运算符进行补充几种
一、移位运算符:我们经常在阅读源码中看到移位运算符的使用,简单来说主要就是对除法或乘法操作(针对于除以2或者乘以2的次数)进行简化
1、移位运算符分类:
1.1、左移运算符:箭头朝左,<<左移几位数就是该数乘以2的几次方
1.2、右移运算符:箭头朝右,>>右移几位就是该数除以2的几次方
2、移位运算符本质:
2.1、左移代表二进制位的位数增大,每左移一位就是乘以2;右移代表二进制的位数减小,每右移一位就是除以2
2.2、示例图阐释:
3、测试案例:
3.1、针对8>>1和5<<5它们的结果分别是什么?
3.2、案例分析:
首先8>>1根据箭头可以判断为右移运算,右移运算表示除以2的几次方,>>箭头后面为1,那么就是2的1次方,所以结果是8除以2的1次方,结果为4;
再看5<<5,根据箭头判断是左移运算,左移运算表示乘以2的几次方,<<箭头后面为5,那么就是2的5次方,所以结果是5乘以2的5次方,结果为160
二、逻辑运算符:计算机中也有表示数学运算上的与、或、非等诸如此类的运算组合,在日常开发中经常用到,每种符号的用法也不尽相同
1、逻辑运算符分类:
与(&)运算符:结果是布尔类型
短路与(&&)运算符:结果是布尔类型
或(|)运算符:结果是布尔类型
短路或(||)运算符:结果是布尔类型
非(!)运算符:对一个布尔类型取反(取反操作)
异或(^)运算符:结果是布尔类型
2、逻辑运算符的格式与使用:
2.1、运算符格式及注意点:
2.1.1、与(&)运算符格式:逻辑表达式1 & 逻辑表达式2
阐述:如果两个表达式结果有一个为false,那么与的结果为false,如果两个表达式结果都为true,那么与的结果为true
注意点:与运算不管前面的结果是否为真还是假,都会执行后面的表达式2
2.1.2、短路与(&&)运算符格式:逻辑表达式1 && 逻辑表达式2
阐述:如果两个表达式结果有一个为false,那么短路与的结果为false,如果两个表达式结果都为true,那么短路与的结果为true
注意点:短路与如果前面的表达式1结果为假,就不会执行后面的表达式2
2.1.3、或(|)运算符格式:逻辑表达式1 | 逻辑表达式2
阐述:如果两个表达式结果有一个为true,那么或的结果就为true,如果两个表达式的结果都为false,那么或的结果就为false
注意点:或不管前面的结果是否为真还是假,都会执行后面的表达式2
2.1.4、短路或(||)运算符格式:逻辑表达式1 || 逻辑表达式2
阐述:如果两个表达式结果有一个为true,那么短路或的结果就为true,如果两个表达式的结果都为false,那么短路或的结果就为false
注意点:短路或如果前面的表达式1结果为真,就不会执行后面的表达式2
2.1.5、非(!)运算符格式:!布尔类型
2.1.6、异或(^)运算符格式:逻辑表达式1 ^ 逻辑表达式2
阐述:如果两个表达式的值都为true或者都为false时,异或的结果为false,如果两个表达式的结果一个为true,一个为false,异或的结果就为true
2.2、运算符的使用示例图: