js 二进制运算符

|、&、~、^运算符

二进制计算里面
| 两数同位是0对应位才是0

1|2 = (0001 或 0010) = 0011 = 3

&两数同位是1对应位才是1

1&2 = (0001 且 0010) = 0000 = 0

^两数同位相同都取0,不同都取1

1^2 = (0001 异或 0010) = 0011 = 3

~每位取反的补码

~2 = 11101(补) = 10010(原)+1 = -(2+1) = -3
补码的转换规则是:最左符号位不变,其余位取反再加1

二进制位运算都是整数运算,计算前都会进行取整,所以可以巧用位运算符来小数取整

~~2.345 = 2
0|3.222 = 3

还有移位运算符,但是平时很少用到
<< 左移运算符
>> 右移运算符

一些javascript的技巧(http://www.haorooms.com/post/js_shiyong_one)

你可能感兴趣的:(js 二进制运算符)