一、位运算符
&是按位与运算符,它运算规则是“两位都是1结果取1,其他情况都取0”。
例如 0&0=0 0&1=0 1&0=0 1&1=1
特殊作用
1)清零 X&0000 0000 = 0000 0000
2)取指定位 对应要取的位的值为1 其余为0 例如 取前4位: 1010 1010 & 1111 0000 = 1010 0000
|是按位或运算符,它的运算规则是“两位都是0结果取0,其他情况都取1”。
例如 0|0=0 0|1=1 1|0=1 1|1=1
特殊作用
置1 对应要置1的位的值为1 其余为0 例如 置后4位为1: 1010 0000 | 0000 1111 = 1010 1111
^是异或运算符,它的运算规则是“两位相同为0,相异为1”。
例如 0^0=0 0^1=1 1^0=1 1^1=0
特殊作用
1)按位取反 对应要取反的位的值为1 其余为0 例如 对后四位取反:1010 1010 ^ 0000 1111 = 1010 0101
2)保留原值 对应位的值全位0 例如 1010 1010 ^ 0000 0000 = 1010 1010
~是取反运算符,它的运算规则是“按位取反”
例如 ~0=1 ~1=0
特殊作用
置最后一位为0: 1111 1001 & ~1 = 1111 1000
<<是左移运算符,将运算对象的一个二进制位全部左移若干位,左边的二进制位舍弃,右边的二进制位补0,若左移时高位不包含1,则每左移一位,相当于该数乘以2
例如 1010 1111 << 2 = 1011 1100
>>是右移意运算符,将运算对象的一个二进制位全部右移若干位,正数左补0,负数左补1,右边的二进制位舍弃,右移一位相当于该数除以2
例如 1010 1111 >> 2 = 1011 1100
>>>是无符号右移运算符,将运算对象的一个二进制位全部右移若干位,左边补0,右边的二进制位舍弃
对于不同长度的数据进行位运算系统会将两个数的右端对其,然后进行位运算。左边不足的位按照下面的规则进行补足:
1)如果数据为正数,左边补0
2)如果数据为负数,左边补1
3)如果数据为无符号数,左边补0
二、逻辑运算符
< 小于
> 大于
<= 小于或等于
>= 大于或等于
== 等于
!= 不等于
&& 而且 (And)
and 而且 (And)
|| 或者 (Or)
or 或者 (Or)
xor 异或 (Xor)
! 非 (Not)
对于and or xor 的比较
.............And.......Or.........Xor
0......0.....0.........0...........0
1......0.....0.........1...........1
0......1.....0.........1...........1
1......1.....1.........1...........0
简单的说
And:同为真时为真
Or:同为假时为假
Xor:相同为假
&是按位与运算符,它运算规则是“两位都是1结果取1,其他情况都取0”。
例如 0&0=0 0&1=0 1&0=0 1&1=1
特殊作用
1)清零 X&0000 0000 = 0000 0000
2)取指定位 对应要取的位的值为1 其余为0 例如 取前4位: 1010 1010 & 1111 0000 = 1010 0000
|是按位或运算符,它的运算规则是“两位都是0结果取0,其他情况都取1”。
例如 0|0=0 0|1=1 1|0=1 1|1=1
特殊作用
置1 对应要置1的位的值为1 其余为0 例如 置后4位为1: 1010 0000 | 0000 1111 = 1010 1111
^是异或运算符,它的运算规则是“两位相同为0,相异为1”。
例如 0^0=0 0^1=1 1^0=1 1^1=0
特殊作用
1)按位取反 对应要取反的位的值为1 其余为0 例如 对后四位取反:1010 1010 ^ 0000 1111 = 1010 0101
2)保留原值 对应位的值全位0 例如 1010 1010 ^ 0000 0000 = 1010 1010
~是取反运算符,它的运算规则是“按位取反”
例如 ~0=1 ~1=0
特殊作用
置最后一位为0: 1111 1001 & ~1 = 1111 1000
<<是左移运算符,将运算对象的一个二进制位全部左移若干位,左边的二进制位舍弃,右边的二进制位补0,若左移时高位不包含1,则每左移一位,相当于该数乘以2
例如 1010 1111 << 2 = 1011 1100
>>是右移意运算符,将运算对象的一个二进制位全部右移若干位,正数左补0,负数左补1,右边的二进制位舍弃,右移一位相当于该数除以2
例如 1010 1111 >> 2 = 1011 1100
>>>是无符号右移运算符,将运算对象的一个二进制位全部右移若干位,左边补0,右边的二进制位舍弃
对于不同长度的数据进行位运算系统会将两个数的右端对其,然后进行位运算。左边不足的位按照下面的规则进行补足:
1)如果数据为正数,左边补0
2)如果数据为负数,左边补1
3)如果数据为无符号数,左边补0
二、逻辑运算符
< 小于
> 大于
<= 小于或等于
>= 大于或等于
== 等于
!= 不等于
&& 而且 (And)
and 而且 (And)
|| 或者 (Or)
or 或者 (Or)
xor 异或 (Xor)
! 非 (Not)
对于and or xor 的比较
.............And.......Or.........Xor
0......0.....0.........0...........0
1......0.....0.........1...........1
0......1.....0.........1...........1
1......1.....1.........1...........0
简单的说
And:同为真时为真
Or:同为假时为假
Xor:相同为假