js按位操作符 & | ^ ~
来源:互联网 发布:11年小牛夺冠数据 编辑:程序博客网 时间:2024/06/05 07:38
按位操作符(操作对象被转变为32位二进制位):
&:按位与,两个操作数相应的比特位都为1时,结果才为1,否则为0
比如:3 & 2 =>
0011
0010
--------
0010 => 2
结果为: 2
再比如:18 & 7 =>
1 0010
0 0111
---------
0 0010 => 2
结果为: 2
|:按位或,两个操作数相应的比特位至少有一个为1时,结果才为1,否则为0
比如:3 | 2 =>
0011
0010
--------
0011 => 3
结果为: 3
再比如:18 | 7 =>
1 0010
0 0111
---------
1 0111 => 23
结果为: 23
^:按位异或,两个操作数相应的比特位有且只有一个为1时,结果才为1,否则为0
比如:3 ^ 2 =>
0011
0010
--------
0001 => 1
结果为: 1
再比如:18 ^ 7 =>
1 0010
0 0111
---------
1 0101 => 21
结果为: 21
~:按位非,反转操作数的比特位
注意:因为要反转比特位,所以需要补满32位,而上述的三个操作(& | ^)都可以不需要补满32位,因为不需要反码,并且对应操作位为0位的运算结果一定是0,所以只有~运算需要并且也必要补满32位
比如:
~2
=> 32位二进制位 0000 0000 0000 0000 0000 0000 0000 0010
=> 反转比特位 1111 1111 1111 1111 1111 1111 1111 1101
=> 32位首位为符号位,0正1负,所以反转之后的数字为一个负数,将负数的二进制数转换成负数,需要取其反码然后+1
=> 取反码 0000 0000 0000 0000 0000 0000 0000 0010
=> +1 0000 0000 0000 0000 0000 0000 0000 0011
=> 结果为 3 ,因为其是一个负数,所以最终结果为 -3
总结:
正数按位非操作,结果为正数+1取负,即 ~2 = -3; ~7 = -8; ~3124 = -3125;
负数按位非操作,结果为负数+1取正,即 ~-2 = 1; ~-7 = 6; ~-3124 = 3123;
-0为正数。
阅读全文
0 0
- js按位操作符 & | ^ ~
- JS位操作运算
- 按位操作符
- js ~操作符(字位操作"非")详解
- c++按位操作符
- c++按位操作符
- c++按位操作符
- c++按位操作符
- c++按位操作符
- c++按位操作符
- c++按位操作符
- Java按位操作符
- Java 按位操作符
- 关于按位操作符
- Java 按位操作符
- java按位操作符
- JS封装的几个位操作函数
- JS中的按位运算符
- 学习工作中遇到的问题合集------持续更新
- iOS应用内支付(IAP)详解 mark
- 使用反射输出结构体属性与数据
- 一起学Kotlin(1)
- Python __future__ 模块
- js按位操作符 & | ^ ~
- LightOJ 1317
- 微信小程序项目 配置开发环境及全面了解小程序
- Visual Studio 2008 查找耗时函数 C++ Profiler 性能 优化
- Oracle数据库比值小于1
- nginx的配置及其tomcat的搭载
- cocos2d-x开发环境搭建
- NYOJ 6 喷水装置(一)
- php连接mssql方法