3.7.5 位运算符

位运算符允许在一个数中处理个别的位(因为浮点数使用一种特殊的内部格式,所以位运算符只适用于整型char、int和long)。位运算符对参数中的相应位做布尔代数运算来产生结果。

如果两个输入位都是1,则“与”运算符(&)在结果位上产生1,否则为0。如果两个输入位有一个是1,则“或”运算符(|)在结果位上产生1,只有当两个输入位都是0时,结果位才为0。如果两个输入位之一是1而不是同时为1,则位的异或运算符xor(^)的结果位为1。位的“非”运算符(~,也称为补运算符)是一个一元运算符,它只带一个参数(其他的运算符都是二元运算符)。非运算符运算的结果和输入位相反,即输入位为0时结果位为1,输入位为1时结果位为0。

位运算符可以和“=”结合来统一运算和赋值:&=、|=和^=都是合法运算(因为~是一元运算符,所以不能和=结合)。