位运算的符详细解析
1. 按位与(&)
位运算符 “&” 对它的整型操作数逐位执行布尔与(AND)操作。只有两个操作数中相对应的位都是1,结果中的这一位才是1。例如,0b10010 & 0b11001 = 0b10000。
2. 按位或(I)
位运算符 “|” 对它的整型操作数逐位执行布尔或(OR)操作。如果其中一个操作数相应的位为1,或者两个操作数相应位都是1,那么结果中的这一位就为1。例 如:0b10010 & 0b11001 = 0b11011。
3. 按位异或(^)
位运算符 “^” 对它的整型操作数逐位执行布尔异或(XOR)操作。异或是指第一个操作数为true或第二个操作数为true,但两者不能同时为true。如果两个操作 数中只有一个相应位为1 (不能同时为1),那么结果中的这一位就是1。例如, 0b10010 & 0b11001 = 0b1011。
4. 按位非(~)
运算符 “〜” 是一元运算符,位于一个整型参数之前,它将操作数的所有位取反。 根据JavaScript中带符号的整数的表示方法,对一个值使用 “~” 运算符相当于改变它的符号并减1。例如, ~0b10010 = -0b10011。
5. 左移(<<)
将第一个操作数的所有二进制位进行左移操作,移动的位数由第二个操作数指定, 移动的位数是0~31之间的一个整数。例如,在表达式a<<1中,a的第一位变成了第 二位,a的第二位变成了它的第三位,以此类推。新的第一位用0来补充,舍弃第32 位。将一个值左移1