javascript——操作符(~、&、|、^、<<、>>)

直接上代码吧!

 1 <script type="text/javascript">
 2         //javascript操作符
 3         //1、按位非~
 4         var num1=25;//
 5         var num2=~num1;//
 6         alert(num2)
 7 
 8         var num3=10;
 9         var num4=~num3;
10         alert(num4)
11 
12         var num5=99;
13         var num6=~num5;
14         alert(num6)
15 
16         //说明:相信大家也已经看出来了按位~(NOT)的实现原理:
17         //以num1、num2为讲解对象
18         //第一步:先把num1转换成二进制
19         //第二步:取得num1二进制的反码赋值给num2
20         //第三步:在把num2换算成十进制数字
21         //简单说明:就是把操作数的数值的负数减1
22 
23 
24         //2、按位与 &(AND)
25         var result=25 & 3;
26         alert(result);//1
27         //说明,就是把两数转换成二进制数字,按照一定的规则:
28         //第一个数值的位       第二个数值的位     结果
29         //  1                       1           1
30         //  1                       0           0
31         //  0                       1           0
32         //  0                       0           0
33 
34         //简而言之,按位操作符的相对应的位都是1时则返回1,任何一位是0则返回0.
35         //然后在得到的二进制转换成十进制数字
36       //  25=0000 0000 0000 0000 0000 0000 0001 1001
37       //  3= 0000 0000 0000 0000 0000 0000 0000 0011
38       //  ------------------------------------------
39       // AND=0000 0000 0000 0000 0000 0000 0000 0001
40 
41 
42         //3、按位或 |(OR)
43         var result=25 | 3;
44         alert(result);//27
45         //说明,就是把两数转换成二进制数字,按照一定的规则:
46         //第一个数值的位       第二个数值的位     结果
47         //  1                       1           1
48         //  1                       0           1
49         //  0                       1           1
50         //  0                       0           0
51 
52         //简而言之,按位操作符的相对应的位有一位是1就返回1,而只有在两个位都是0的情况下才返回0.
53         //然后在得到的二进制转换成十进制数字
54 
55         //  25=0000 0000 0000 0000 0000 0000 0001 1001
56         //  3= 0000 0000 0000 0000 0000 0000 0000 0011
57         //  ------------------------------------------
58         //  OR=0000 0000 0000 0000 0000 0000 0001 1011
59 
60 
61         //4、按位异或 ^(XOR)
62         var result= 25 ^ 3;
63         alert(result);//26
64         //说明,就是把两数转换成二进制数字,按照一定的规则:
65         //第一个数值的位       第二个数值的位     结果
66         //  1                       1           0
67         //  1                       0           1
68         //  0                       1           1
69         //  0                       0           0
70         //简而言之,这个操作符(^)在两个数值对应位上只有一个1时才返回1,否则返回0.
71         //然后在得到的二进制转换成十进制数字
72 
73         //  25=0000 0000 0000 0000 0000 0000 0001 1001
74         //  3= 0000 0000 0000 0000 0000 0000 0000 0011
75         //  ------------------------------------------
76         // XOR=0000 0000 0000 0000 0000 0000 0001 1010
77 
78 
79         //5、左移(<<)
80         var oldNum=2;
81         var newNum=oldNum << 5;
82         alert(newNum)
83         //说明,将2(二进制数码10)向左移5位结果就是1000000(二进制)等于64
84         //注意,左移不会影响操作符的符号位,例如将-2左移5位就是-64
85         //2=0000 0000 0000 0000 0000 0000 0000 0010
86        //64=0000 0000 0000 0000 0000 0000 010 00000
87 
88 
89         //6、有符号右移(>>)
90         var oldNum=64;
91         var newNum=oldNum >> 5;
92        //64=0000 0000 0000 0000 0000 0000 010 00000
93         //2=0000 0000 0000 0000 0000 0000 0000 0010
94         alert(newNum)
95     </script>
View Code

 

posted @ 2014-12-30 22:23  徐大腿  阅读(868)  评论(4编辑  收藏  举报