位操作是程序设计中对位模式按位和二进制数的一元和二元操作。
位与运算符、位或运算符、位异或运算符、位非运算符、左移运算符、右移运算符
1.位与运算符(&)
位与运算符(&)是一个二元运算符,该运算符可以将左右两个操作数逐位执行and操作,即只有两个操作数中相对应的位都为1时,该结果中这一位才为1.
即:0&0=0,1&0=0,0&1=0,1&1=1
2.位或运算符(|)
位或运算符(|)也是一个二元运算符,该运算符可以将左右两个操作数逐位执行or操作,即两个操作数中只要有一个操作数为1,则该结果中这一位就为1.
即:0|0=0,1|0=1,0|1=1,1|1=1。
3.位异或运算符(^)
位"异或"运算符(^)将第一个操作数的每一位与第二个操作数的相应位进行比较。如果一个位是0,另一个位是1,则相应的结果位将设置为1.否则,将对应的结果位设置为0.即相同为0,不相同为1.
即:0^0=0,1^1=0,0^1=1,1^0=1.
4.位非运算符(~)
位非操作符是一个波浪线(~)表示,是一个单模运算符,即取反。
即~0=1,~1=0.
5.左移运算符(<<)
左移运算符是双模操作符,在移位的过程中,做操作数的最低位用0补充,例如:
var iOld = 9; // 9 等于 二进制1001
var iNew = iOld << 2; // 向左移两位变成100100
document.write(iNew); // 36
6.右移运算符(>>)
右移运算符也是双模操作符,在移位过程中,是丢弃移除的位,而左边用0补充,负数用1补充