js位运算符怎么运算,js中的位运算
本教程运行环境:windows7系统,javascript1.8.5版本1.8.5,戴尔G3电脑。
在javascript中,位运算符是用于对二进制位进行运算的符号。
位运算符可以将二进制位从低位到高位对齐,然后进行运算。
下表显示了JavaScript中支持的位运算符:
运算符描述按位与的例子:如果对应的二进制位全为1,则二进制位为15 1,相当于0101 0001,十进制结果为1按位或:如果对应的二进制位中有一位为1,则二进制位为15 1,相当于0101 0001,即0101,十进制结果为5按位异或:如果只有一个对应的二进制位为1,则二进制位为15 1, 相当于0101 0001,十进制结果为4~按位NOT:反转所有二进制位,即1转换为0,0转换为1~5,相当于~0101,结果为101 0。 十进制结果为-6左移:所有二进制位统一左移指定位数,最右边加05 1,相当于0101 1。结果是1010,十进制结果是右移10位(有符号右移):所有二进制位统一右移指定位数,复制最左边的位填充左边的5个1,相当于0101个1,结果是十进制结果为2,右移为零(无符号右移):所有二进制位统一右移指定位数,最左侧加05 1,相当于0101 1。十进制结果是0010,十进制结果是2位运算符。共有7个运算符,分为两类:
逻辑运算符:按位AND()、按位OR ()、按位XOR()、非按位(~)
移位运算符:Left(),Right(),Unsigned Right()
逻辑位运算符(、、^和~)
逻辑运算符的操作方式与逻辑运算符相同,但它们针对不同的对象。位运算符用于二进制整数值,而逻辑运算符用于非二进制值。
“”运算符
“”运算符(按位AND)用于逐位比较两个二进制操作数,并根据下表所示的转换表返回结果。
" "运算符第一个数的位值和第二个数的位值,111000100012和5,返回值为4。
console . log(12 5);//返回值4下图以公式的形式分析了12和5按位and运算的过程。通过按位AND运算,只有第3位的值全部为真,所以它返回真,其他位都返回假。
“”运算符
运算符(按位or)用于逐位比较两个二进制操作数,并根据表中所示的转换表返回结果。
运算符第一个数的位值第二个数的位值运算结果11110101100012与5进行位或运算,返回值为13。
console . log(12 5);//返回值13下图以公式的形式分析了12和5之间按位或运算的过程。通过按位“或”运算,除了第二位的值为假之外,其他所有位都返回真。
“^”运算符
“”运算符(按位XOR)用于逐位比较两个二进制操作数,并根据表中所示的转换表返回结果。
“”运算符第一个数的位值和第二个数11010101100012的位值运算结果与5进行按位异或,返回值为9。
console . log(12 ^ 5);//返回值9下图以公式的形式分析了12和5之间按位异或运算的过程。通过按位异或运算,第1位和第4位的值为真,而第2位和第3位的值为假。
“~”运算符
“~”运算符(逐位求反)用于逐位求二进制操作数的反。
步骤1:将操作数转换为32位二进制整数。
第二步:一点一点反转。
第三步:将二进制反码转换成十进制浮点数。
如果对12执行按位求反,则返回值为-13。
console . log(~ 12);//返回值-13下图以方程的形式分析了12按位求反的过程。
其实非位运算就是取负数减1。例如:
console . log(~ 12==12-1);//返回真移位运算符(、和)
移位操作是二进制的常规低位移位。移位操作可以设计出许多奇妙的效果,在图形编程中被广泛使用。
“”运算符
“”运算符执行左移运算。在移位操作期间,符号位保持不变。如果右边的位置空了,会自动填充0;如果该值超过32位,它将被自动丢弃。
将数字5左移2位,返回值为20。
console . log(5 ^ 2);//公式演示返回值20,如图。
“”运算符
“”运算符执行有符号右移位运算。与左移操作相反,它将32位数字的所有有效位右移,然后使用符号位的值来填充空位。移动过程中超出的值将被丢弃。
将值1000右移8位,返回值为3。
console . log(1000 8);//返回值3用公式演示,如图。
将值-1000右移8位,返回值为-4。
console . log(-1000 8);//返回值-4由公式演示,如图。当符号位的值为1时,有效位左边的所有空格都用1填充。
“”运算符
“”运算符执行五符号右移位运算。它将无符号32位整数的所有数字向右移位。对于无符号数或正数右移运算,无符号右移运算的结果与有符号右移运算的结果相同。
下面两行表达式的返回值是一样的。
console . log(1000 8);//返回值3
console . log(1000 8);//返回值3对于负数,无符号右移会用0填充所有空格,同时负数会被当作正数处理,结果会很大。因此,在使用无符号右移位运算符时要特别小心,以避免意外错误。
console . log(-1000 8);//返回值-4
console . log(-1000 8);//公式演示返回值1677212,如图。左边的空格不再用符号位的值填充,而是用0填充。
【相关推荐:javascript学习教程】以上是javascript中什么是位运算符的详细内容。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。