位运算是指按二进制进行的运算。在程序中,常常需要处理二进制位的问题。C/C++语言提供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型。
在实际应用中,建议用unsigned整型操作数,因为带符号操作数可能因为不同机器结果不同。
c++和c的位操作运算符完全相同,但c++中增加了bitset标准库来支持位集操作,具体内容请参考http://book.51cto.com/art/200809/88698.htm或者http://book.csdn.net/bookfiles/17/1001760.shtml,这些链接都是《C++ Primer中文版》中的内容,大家也可以直接看书。
下面是C/C++位操作运算符列表,其中运算符优先级为从上到下递减,但<<,>>优先级相同。
C/C++位操作运算符
操作符 |
功能 |
用法 |
~ |
位求反 |
~expr |
<< |
左移 |
expr1 << expr2 |
>> |
右移 |
expr1 >> expr2 |
& |
位与 |
expr1 |