C++语言程序设计

3.1.5 位运算符
C++提供6种位运算符，可以进行二进制位的运算，参见表3-7。
位运算符要求操作数是整型数，并按二进制位的顺序来处理它们。取反运算符是单目运算符，其它位运算符是双目运算符。取反运算符（~）将操作数的二进制位逐位取反。逐位与运算符（&）比较两个操作数对应的二进制位，当两个二进制位均为1时，该位的结果取1，否则取0。逐位或运算符（|）比较两个操作数对应的二进制位，当两个二进制位均为0时，该位的结果取0，否则取1。逐位异或运算符（^）比较两个操作数对应的二进制位，当两个二进制位均为1或均为0时，该位的结果取0，否则取1。
逐位左移运算符（<<）和逐位右移运算符（>>）均有一个正整数n作为右操作数，将左操作数的每一个二进制位左移或右移n位，空缺的位设置为0或1。对于无符号整数或有符号整数，如果符号位为0（即为正数），空缺位设置为0；如果符号位为1（即为负数），空缺位是设置为0还是设置为1，要取决于所用的计算机系统。