位移运算符
位移运算符 直接操作二进制数,运算速率更快。
- 按位非(not) 把1变成0,把0变成1 超出运算范围,变成负数
var a=25; var b=~a; b=?
25的 二进制数:00000000000011001
转化后: 11111111111100010
结果为:-26
总结非运算:一个数与自身的取反值相加等于-1。 此例中 25 与它的取反值-26 相加得1.
2)按位与&(and) 都为1得1,都为0得0,不同得0
var a=25 ; var b=a&3 b=??
25的 二进制数:00000000000011001
3的二进制数 :00000000000000011
结果:00001 结果为:1
与运算(&):两个二进制位中都为1,才返回1,否则返回0
3)按位或 | (or) 都为1得1,都为0得0,不同得1
var a=25 ; var b=a|3 b=??
25的 二进制数:00000000000011001
3的二进制数 :00000000000000011
结果:11011 结果为: 27
或运算(|):两个二进制位中只要有一个为1,就返回1