B.5.6 按位运算符
假设
i、j、n是任何整型数据类型的表达式;
则表达式
i&j 执行i和j的按位AND操作;
i|j 执行i和j的按位OR操作;
i^j 执行i和j的按位XOR操作;
~I对i 求反;
i<<n 将i左移n位;
i>>n 将i右移n位;
上述操作对运算数执行常见的算术变换,但<<和>>除外,这两种情况只是对每一个运算数进行整数提升(参见“基本数据类型的转换”一节)。如果移位计数是负的或者大于等于被移动对象包含的位数,则移位结果是不确定的。在某些计算机上,右移是一种算术运算(填入正负号),而在其他计算机上则是一种逻辑运算(填入0)。移位操作结果的类型就是提升的左侧运算数的类型。