位操作符


javascript中的数都用64位表示,执行位运算时,将取低32位的数用于位运算,舍弃掉高32位,结果是一个32位的有符号数。

另外,这种转换会带来一个副效应,即在对特殊的NaN和Infinity应用位操作时,这两个值都会被当做是0来处理。

如果对非数值应用位操作符,会先使用Number()函数将该该值转换为一个数值(自动完成),然后再应用位操作,得到的结果是一个值。

1、按位非操作

按位非操作的实质是取操作数的负值减1.

2、按位或操作

3、按位与操作

4、按位异或操作

两位相同,结果为0;两位不同,结果为1

5、左移位运算

注意,在处理有符号整数时,是不能访问位31的,即左移不会影响操作数的符号位,-2左移5位,是-64.

6、有符号右移位运算

7、无符号右移位运算


wangfeiyan
4 声望0 粉丝