&(按位与)

运算规则:两个为真才为真 (1&1=1 , 1&0=0 , 0&1=0 , 0&0=0)

例:3&5=1

3的二进制位是0000 0011,5的二进制位是0000 0101 ,那么就是011 & 101,由按位与运算规则得知,001 & 101等于0000 0001,最终值为1

&&(逻辑与)

运算规则:&&逻辑与也称为短路逻辑与,先运算&&左边的表达式,一旦为假,后续不管多少表达式,均不再计算,一个为真,再计算右边的表达式,两个为真才为真。

|(按位或)

运算规则:一个为真即为真(1|0 = 1 , 1|1 = 1 , 0|0 = 0 , 0|1 = 1)

例:6|2=6

6的二进制位0000 0110 , 2的二进制位0000 0010 , 110|010为110,最终值0000 0110,故6|2等于6

||(逻辑或)

运算规则:一个为真即为真,后续不再计算,一个为假再计算右边的表达式。

^(异或运算符)

运算规则:相同为0,不同为1 (1^0 = 1 , 1^1 = 0 , 0^1 = 1 , 0^0 = 0)

例 5^9=12

5的二进制位是0000 0101 , 9的二进制位是0000 1001,也就是0101 ^ 1001,结果为1100 , 00001100的十进制位是12

<

5<<2的意思为5的二进制位往左挪两位,右边补0,5的二进制位是0000 0101 , 就是把有效值101往左挪两位就是0001 0100 ,正数左边第一位补0,负数补1,等价于:result=num×2的n次方十进制位是20

>>(右移运算符)

5的二进制位是0000 0101,右移两位就是把101左移后为0000 0001,正数左边第一位补0,负数补1,等价于:result=num÷2的n次方,结果为1

~(取反运算符)

运算规则:将0变为1,1变为0

例:5的二进制位是0000 0101,取反后为1111 1010,值为-6

>>>(无符号右移运算符)

运算规则:

对于正数:无符号右移是高位补0,移多少位补多少个0

对于负数:正数的二进制,取反,再加1

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐