位运算是指按二进制进行的运算。在程序中,常常需要处理二进制位的问题。C/C++语言提供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型。在实际应用中,建议用unsigned整型操作数,因为带符号操作数可能因为不同机器结果不同。
| 操作符 | 功能 | 用法 |
| ~ | 位求反 | ~expr |
| << | 左移 | expr1 << expr2 |
| >> | 右移 | expr1 >> expr2 |
| & | 位与 | expr1 & expr2 |
| ^ | 位异或 | expr1 ^ expr2 |
| | | 位或 | expr1 | expr2 |
0&0=0;
0&1=0;
1&0=0;
1&1=1;
也就是
| & | 0 | 1 |
| 0 | 0 | 0 |
| 1 | 0 | 1 |
| | | 0 | 1 |
| 0 | 0 | 1 |
| 1 | 1 | 1 |
| ^ | 0 | 1 |
| 0 | 0 | 1 |
| 1 | 1 | 0 |
>>右移操作,相当于除以2
左移右移都不会改变自身的数值
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int a = 43;
cout << (a >> 2) << endl;//必须用括号括起来
cout << a << endl;
//a>>2相当于a/(2的2次方)==a/4==43/4
/*
10
43
*/
return 0;
}

3097

被折叠的 条评论
为什么被折叠?



