操做符 | 名称 | 描述 |
---|---|---|
& | 按位与 | 若是两个位均为1,则将每一个位设置为1 |
Ι | 按位或 | 若是两位中的一位为1,则将每一个位设置为1 |
^ | 按位异或 | 若是两个位中只有一个为1,则将每一个位设置为1 |
~ | 非 | 反转全部位 |
<< | 零填充左移 | 经过从右侧推入零来左移,让最左边的位掉下来 |
>> | 算术右移 | 经过从左侧推入最左边的位的副原本向右移动,并使最右边的位脱落 |
>>> | 零填充右移 | 经过从左侧推入零来向右移动,并让最右边的位脱落 |
例子:javascript
操做 | 结果 | 等价 | 结果 |
---|---|---|---|
5 & 1 | 1 | 0101 & 0001 | 0001 |
5 Ι 1 | 5 | 0101 Ι 0001 | 0101 |
~ 5 | 10 | ~0101 | 1010 |
5 << 1 | 10 | 0101 << 1 | 1010 |
5 ^ 1 | 4 | 0101 ^ 0001 | 0100 |
5 >> 1 | 2 | 0101 >> 1 | 0010 |
5 >>> 1 | 2 | 0101 >>> 1 | 0010 |
当对一对位执行按位与操做时,若是两个位都为1,则返回1。html
一位操做例子:java
操做 | 结果 |
---|---|
0&0 | 0 |
0&1 | 0 |
1&0 | 0 |
1&1 | 1 |
当对一对位执行按位或操做时,若是其中至少有一个位为1,则返回1,不然返回0:ide
一位操做例子:code
操做 | 结果 |
---|---|
0Ι0 | 0 |
0Ι1 | 1 |
1Ι0 | 1 |
1Ι1 | 1 |
能够在线尝试一下htm
当对一对位执行按位异或操做时,若是位不一样(相异而或),则返回1:ip
一位操做例子:get
操做 | 结果 |
---|---|
0^0 | 0 |
0^1 | 1 |
1^0 | 1 |
1^1 | 0 |