什么是位运算:
利用位运算符号进行二进制位计算的操作即为位运算
维基百科:👉Bitwise operations in C – Wikipedia
六个位运算符:
Symbol | Operator |
---|---|
& |
bitwise AND |
| |
bitwise inclusive OR |
^ |
bitwise XOR (exclusive OR) |
<< |
left shift |
>> |
right shift |
~ |
bitwise NOT (one’s complement) (unary) |
& 位与运算符:
&表示AND。使用&进行位二进制操作,是对操作数的每一个二进制位上进行逻辑合取
bit a | bit b | a & b (a AND b) |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
The bitwise AND operator is a single ampersand: . It is just a representation of AND which does its work on the bits of the operands rather than the truth value of the operands. Bitwise binary AND performs logical conjunction (shown in the table above) of the bits in each position of a number in its binary form. &
例如:
11001000 & 10111000 -------- = 10001000
| 位或运算:
| 表示 OR。类似于AND,使用|进行位二进制操作,是对操作数的每一个二进制位上进行逻辑析取
bit a | bit b | a | b (a OR b) |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
Similar to bitwise AND, bitwise OR performs logical disjunction at the bit level. Its result is a 1 if either of the bits is 1 and zero only when both bits are 0. Its symbol is which can be called a pipe. |
例如:
11001000 | 10111000 -------- = 11111000
^ 位异或运算:
^表示 XOR,使用|进行位二进制操作,是对操作数的每一个二进制位上进行逻辑异或析取
bit a | bit b | a ^ b (a XOR b) |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
原文地址:http://www.cnblogs.com/slowlydance2me/p/16888700.html