码迷,mamicode.com
首页 > 编程语言 > 详细

Javascript--位运算符

时间:2015-03-02 00:56:40      阅读:332      评论:0      收藏:0      [点我收藏+]

标签:

1.NOT

位运算符NOT由~表示.NOT运算符的实质是对数字求负,然后减1.

位运算符NOT是三步的处理过程.

a.把运算符转换成32位数字

b.把二进制形式转换成它的二进制反码

c.把二进制反码转换成浮点数

例子:

        var num=10;
        document.write(~num);
结果:
-11
2.AND
位运算符AND由&表示.直接对数字的二进制形式进行运算.运算规则如下:
第一个数字 第二个数字 结果
0 0 0
0 1 0
1 0 0
1 1 1

例子:

        var num1=10;

结果:

技术分享 10的二进制表示1010

3.OR

位运算符OR由符号|表示.直接对二进制进行运算,规则如下:

第一个数字 第二个数字 结果
0 0 0
0 1 1
1 0 1
1 1 1

例子:

        var num1=10;

结果:

技术分享 11的二进制表示是1011

4.XOR

位运算符XOR由符号^表示.直接对二进制进行运算.规则如下:

第一个数字 第二个数字 结果
0 0 0
0 1 1
1 0 1
1 1 0

例子:

        var num1=10;

结果:

技术分享 1的二进制表示是1

5.<<

左移运算符由<<表示.它把数字中所有位数向左移动指定的数量.

注意:

a.在左移数位时,数字右边的空位由0来填充,使结果是完整的32位数字

b.左移操作保留数字的符号位.

例子:

        document.write(10<<2+"<br/>");
        document.write(-10<<2);

效果:

技术分享

6.>>

有符号右移运算由>>表示.它将32位数字中的所有数字整体右移.同时保留该数的符号.

注意:

a.符号位保持不变

b.在右移数位时,数字左边的空位由0填充

例子:

        document.write(10>>1);
        document.write("<br/>");
        document.write(-10>>1);

效果:

技术分享 

7.>>>

无符号右移由>>>表示.它将32位数字中的所有数字整体右移.

注意:

a.无符号右移运算用0填充所有空位.

b.对于整数,无符号右移和有符号右移结果一样.

c.对于负数,由于左侧补0,导致负数经过无符号右移后,变为一个正数

例如:

       document.write(-10>>>1);

结果:

技术分享

运算过程:

-10

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0

经过无符号右移-10>>>1

0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1

结果:

2147483643

Javascript--位运算符

标签:

原文地址:http://www.cnblogs.com/yhq361/p/4307795.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!