C++之位操作符
位操作符:
将其整型操作数视为二进制位的集合,为每一位提供检验和设置的功能。
~ :按位求反
<< :左移,左移1相当于*2
:其右操作数标识要左移动的位数,从而产生新的值,并丢弃移出去的位,在右边插入0以补充空位。
>> :右移,右移1相当于/2
:其有操作数标识要右移的位数,从而产生新的值,并丢弃移出去的位。
:如果右边的操作数是无符号数,则从左边插入0;如果操作数是有符号数,则插入符号位的值或0.
注意:移位操作的右操作数不可能是负数,而且必须是严格小于左操作数的位数的值。否则无意义。
& :位与,有0的,则与的结果为0
| :位或,有1的,则或的结果为1
^ :异或,两位不同则为1,相同则为0
注意:由于系统不能确保如何处理操作数的符号位,建议使用unsigned整型操作数。