zoukankan      html  css  js  c++  java
  • 详解位运算符的一些特点

    我们都知道位运算符比正常的运算符速度要快,但是为什么会快呢?首先我们正常的运算符也是通过计算机通过位运算调用栈来实现的。

    那么javascript位运算符有哪些呢?

    1.          &      按位与                  

    2.          |        按位或

    3.          ^       按位异或

    4.          ~      取反

    5.    >>     按位左移

    6.         >>     按位右移

    说明:

    (1)位运算符中除 ~ 外,均为二目运算符,即要求出侧各有一个运算量。

    (2)运算早只能是整型或字符型的数据,不能为实型数据。

     

    1.按位与       &

    左值与右值都为true,则为true,否则就为false。

    console.log(5&7);//5 首先我们先把5跟转成2进制,2进制是逢二进一,什么意思呢?如下图,得到的总数就是  1+0*(2*1)+1*(2*2)=5=101,同理可以得到7=1+1*(2*1)+1*(2*2) =111  

    那么根据位运算的道理,两个都要一样才为true,否则为0,那么5&7          得到的就是       101    &    111         ==101        = 5 

    2.按位或      |

    左值与右值只要有一个为true,则为true,否则就为false。

    console.log(5|7);//7  

    console.log(5|7);//7 首先我们先把5跟转成2进制,2进制是逢二进一,什么意思呢?如下图,得到的总数就是  1+0*(2*1)+1*(2*2)=5=101,同理可以得到7=1+1*(2*1)+1*(2*2) =111  

    那么根据位运算的道理,只要一个为true,就为1,否则为0,那么5&7          得到的就是       101    |    111         ==111        = 7 

    3.按位异     ^

    若参与计算的两个二进位为同号则为0,异号则为1

    console.log(true ^ true);//0          console.log(true ^ false);//1        console.log(false ^ false);//0    console.log(false ^ true);//1

    console.log(5^7);//2 首先我们先把5跟转成2进制,2进制是逢二进一,什么意思呢?如下图,得到的总数就是  1+0*(2*1)+1*(2*2)=5=101,同理可以得到7=1+1*(2*1)+1*(2*2) =111  

    那么根据位运算的道理,两个同号就为0,异号就为1,那么5^7          得到的就是       101    ^    111         ==010        =  2 

    4.按位取反     ~

    console.log(~2.5);//-3                取反之后向下取整

    5.按位左移     <<

    按位左移相当于      *2^n        2的n次方       并且向下取整

    console.log(5<<2);//20              5*x2*2=20      

    6.按位右移     >>

    按位右移相当于      /2^n        除以2的n次方       并且向下取整

    console.log(5>>2);//1              5*/(2*2)=1.25    向下取整为    1  

  • 相关阅读:
    deepin 配置开发环境
    Springcloud学习笔记(一)总述
    Linux(Centos7) 配置 Tomcat 开机自启
    Linux下安装JDK8
    CentOS7 防火墙和端口管理
    Linux 下安装 MySQL8 教程
    WPF使用CefSharp嵌入网页
    WPF使用第三方字体(TTF字体)
    Hive学习笔记 --Permission denied: user=anonymous, access=READ
    SpringBoot jar 注册windows服务
  • 原文地址:https://www.cnblogs.com/xiongmaoblog/p/7108730.html
Copyright © 2011-2022 走看看