基本概念:
位运算 : 顾名思义,就是按位运算的意思,一般指二进制下的位运算
"&" 按位与运算
与运算 : 两个位都为1时,结果才为1,否则为0
例子:
100001
& 101011
---------
100001
代码:
100001 & 101011
"|" 按位或运算
或运算 : 两个位都为0时,结果才为0,否则为1
例子:
101100101
| 101000111
------------
101100111
代码:
101100101 | 101000111
"^" 按位异或运算
异或运算 : 两个位相同为0,不同为1
例子:
101100101
^ 101000111
------------
000100010
代码:
101100101 ^ 101000111
"<<" 左移运算
1. 将一个数的二进制表示向左移动指定的位数
2. 移位过程中,高位溢出的部分被丢弃,低位补0
例子:
010101110
<< 3
--------------
101110000
代码:
010101110 << 3
">>" 右移运算
1. 将一个数的二进制表示向右移动指定的位数
2. 移位过程中,低位溢出的部分被丢弃,高位补0
例子:
010101110
>> 3
--------------
000010101
代码:
010101110 >> 3
基本概念:
位运算 : 顾名思义,就是按位运算的意思,一般指二进制下的位运算
"&" 按位与运算
与运算 : 两个位都为1时,结果才为1,否则为0
例子:
100001 & 101011 --------- 100001代码:
100001 & 101011"|" 按位或运算
或运算 : 两个位都为0时,结果才为0,否则为1
例子:
101100101 | 101000111 ------------ 101100111代码:
101100101 | 101000111"^" 按位异或运算
异或运算 : 两个位相同为0,不同为1
例子:
101100101 ^ 101000111 ------------ 000100010代码:
101100101 ^ 101000111"<<" 左移运算
1. 将一个数的二进制表示向左移动指定的位数
2. 移位过程中,高位溢出的部分被丢弃,低位补0
例子:
010101110 << 3 -------------- 101110000代码:
010101110 << 3">>" 右移运算
1. 将一个数的二进制表示向右移动指定的位数
2. 移位过程中,低位溢出的部分被丢弃,高位补0
例子:
010101110 >> 3 -------------- 000010101代码:
010101110 >> 3