位运算是指按二进制进行的运算。在程序中,常常需要处理二进制位的问题。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++位操作运算符列表,其中运算符优先级为从上到下递减,但<<,>>优先级相同。
代码示例如下:
代码 1 #include<iostream> 运算结果如下: ~x=65532 ~x=-4 x&y=1 x^y=6 x|y=7 x<<1=6 y>>1=2 代码解释如下: ~ 00000000 00000011 00000000 00000011 00000000 00000011 00000000 00000011 00000000 00000011<<1 00000000 00000101>>1 |
|
来自: Harrison.Ding > 《C & CPP》