按位操作符用来操作整数基本类型中的单个”比特“(bit),即二进制位。按位操作符会对两个参数中对应的位执行布尔代数运算,并最终生成一个结果。
按位”与“操作符(&):如果两个输入位都是1,则输出为1,否则为0
比如 8 & 9
// 1000
// 1001
//二进制为1000 值为8
按位”或“操作符(|):如果两个输入位某一个为1则为1,两个输入位都是0则为0
比如 8 | 9
// 1000
// 1001
//二进制为1001 值为9
按位”异或“操作符(^):如果两个输入位都为0或者1则为0,否则为1
比如 8 ^ 9
// 1000
// 1001
//二进制为0001 值为1
按位”非“操作符(~):它是一元〜位运算符,即对每个位执行逻辑否定,形成给定二进制值的1的补码。0的数字变为1,反之亦然。
1.仅用于整数值
2.反转位,即0位变为1位,反之亦然
3.在所有情况下〜x等于(-x)-1
比如 ~7
// 1000
// 结果为0111