《JavaScript高级程序设计》笔记(2):位操作符

本文详细介绍了计算机编程中的七种基本位运算符:按位非(NOT)、按位与(AND)、按位或(OR)、按位异或(XOR)、左移、有符号右移和无符号右移,并通过实例展示了它们的具体应用。

1.按位非(NOT)

2.按位与(AND)

3.按位或(OR)

4.按位异或(XOR)

5.左移

6.有符号右移

7.无符号右移

------------------------------------------------------------------------------------------------------------------------------------------------------------------

1.按位非(NOT):

符号:~

功能:返回数值的反码。

var num1 = 25;         //二进制00000000000000000000000000011001
var num2 = ~num1;  //二进制11111111111111111111111111100110
alert("num2");    //-26

操作数的负值减1。因此下面的代码也能得到相同的结果:

var num1 = 25;
var num2 = -num1 -1;
alert(num2);           // "-26"

按位非是在数值底层操作,因此速度更快。

 

2.按位与(AND)

符号:&

功能:只在两个数值的对应都是1时才返回1,任何一位是0,结果都是0。如下表:

第一个数值第二个数值结果
111
100
010
000

 

var result = 25 & 3;
alert(result);           //1

 

3.按位或(OR)

符号: |

功能:在有一个位是1的时候就返回1,而只有在两个位都是0的情况下才返回0。

第一个数值第二个数值结果
111
101
011
000
var result = 25 | 3;
alert(result);        //27

4.按位异或(XOR)

符合:^

功能:在两个位对应只有一个1的时候才返回1,如果对应的两个位是1或0时返回0。

第一个数值第二个数值结果
110
101
011
000

 

var result = 25 ^ 3;
alert("result");      //26

 

5.左移

符号:<<

功能:所有位向左移,右边空出来的用0补。

var oldValue = 2;              //二进制的10
var newValue = oldValue << 5; //等于二进制的1000000,十进制到底64

左移不影响操作数的符号位。

 

6.有符号右移:

符号:>>

功能:将数值向右移动,保留符号位(正负号),左侧的空位用符号位来填充。

var oldValue = 64;                //二进制的1000000
var newValue = oldValue >> 5;  //等于二进制的10,即十进制的2

 

7.无符号右移:

符号:>>>

功能:正数,同有符号右移;负数,用0填充空位,而不是像正数(有符号右移)以符号位填充空位。

var oldValue = -64;
var newValue = oldValue >>> 5;

 

转载于:https://www.cnblogs.com/TheLegendofAJ/p/3312048.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值