1、Javascript 位运算符1、位运算符 &(AND) 按位与位运算符AND由&表示,直接对数字的二进制形式进行运算。例子:var num1=2;var num2=3;document.write(num1 & num2);结果:2运算过程:&是二元运算符,它以特定的方式组合操作数中对应的位 如果对应的位都为1,那么结果就是1, 如果任意一个位是0 则结果就是0。对应的二进制数第一个数字2第二个数字3结果111010通过二进制比对的结果10,10对应的十进制为2,故而(num1 & num2)结果为2。2、位运算符 |(OR) 按位或位运算符OR由符号|表示.直接对数字的二进制进行运算。例子
2、:var num1=2;var num2=3;document.write(num1 | num2);结果:3运算过程:| 跟 & 的区别在于 如果对应的位中任一个操作数为1 那么结果就是1对应的二进制数第一个数字2第二个数字3结果111011通过二进制比对的结果11,11对应的十进制为3,故而(num1 | num2)结果为3。3、位运算符 (XOR) 按位异或位运算符XOR由符号表示.直接对数字的二进制进行运算,规则如下例子:var num1=2;var num2=3;document.write(num1 num2);结果:1运算过程:运算符跟 | 类似,但有一点不同的是如果两个操作位都
3、为1的话,结果产生0对应的二进制数第一个数字2第二个数字3结果110011通过二进制比对的结果01,01对应的十进制为1,故而(num1 | num2)结果为1。4、位运算符 (NOT) 取反位运算符NOT由符号表示。NOT运算符的实质是对数字求负。位运算符NOT是三步的处理过程.a.把运算符转换成32位数字b.把二进制形式转换成它的二进制反码c.把二进制反码转换成浮点数例子:var num1=2;document.write(num1);结果:-3运算过程:2 对应二进制 10 ,补满32位00000000000000000000000000000010按位求反111111111111111
4、11111111111111101由于32位开头第一个是1,所以这是一个负数,将二进制转换成负数,需要先反码00000000000000000000000000000010之后,再+100000000000000000000000000000011转换成十进制为3,加上符号变负数为-35、位运算符 左移运算符左移运算符由表示.它把数字中所有位数向左移动指定的数量。注意:a.在左移数位时, 超过的位将丢失,数字右边的空位由0来填充,使结果是完整的32位数字。b.左移操作保留数字的符号位。例子:document.write(3 右移运算符右移运算符由表示.它把数字中所有位数向右移动指定的数量。注意
5、:a.符号位保持不变;b.在右移数位时,数字左边的空位由0填充。例子:document.write(122); 结果:3运算过程: 12 对应二进制 1100 , 补满32位00000000000000000000000000001100向右移动2位00000000000000000000000000000011对应的十进制为37、位运算符 无符号右移运算符无符号右移由表示.它将32位数字中的所有数字整体右移.注意:a.无符号右移运算用0填充所有空位.b.对于整数,无符号右移和有符号右移结果一样.c.对于负数,由于左侧补0,导致负数经过无符号右移后,变为一个正数例如:document.write(-31); 结果:2147483646运算过程: -3 对应二进制 11111111111111111111111111111101经过无符号右移1位01111111111111111111111111111110对应的十进制为2147483646