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>
如果觉得对你有所帮助就打点一下吧