• 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
  • 相关阅读:
    常见 Web 安全攻防总结
    传统方式接口测试返回值json验证
    Springboot中RestTemplate -- 用更优雅的方式发HTTP请求
    mock简单的json返回
    MySQL数据库学习笔记(五)----MySQL字符串函数、日期时间函数
    MySQL数据库学习笔记(四)----MySQL聚合函数、控制流程函数(含navicat软件的介绍)
    MySQL数据库学习笔记(三)----基本的SQL语句
    MySQL数据库学习笔记(一)----MySQL 5.6.21的安装和配置(setup版)
    python实现广度优先搜索
    php递归
  • 原文地址:https://www.cnblogs.com/goesby/p/4194694.html
Copyright © 2020-2023  润新知