首页前端开发JavaScriptjavascript怎么进行按位求反

javascript怎么进行按位求反

时间2024-01-31 00:06:02发布访客分类JavaScript浏览698
导读:收集整理的这篇文章主要介绍了javascript怎么进行按位求反,觉得挺不错的,现在分享给大家,也给大家做个参考。在javascript中,可以利用“~”操作符来实现按位求反,语法“~ 运算数”;“~”操作符可以将指定运算数转为二进制整数形...
收集整理的这篇文章主要介绍了javascript怎么进行按位求反,觉得挺不错的,现在分享给大家,也给大家做个参考。

在javascript中,可以利用“~”操作符来实现按位求反,语法“~ 运算数”;“~”操作符可以将指定运算数转为二进制整数形式,并对该二进制操作数逐位进行取反操作。

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

在javascript中,可以利用“~”操作符来实现按位求反。如~1 = -2,~-3=2,~true=-2,~false=-1

“~”操作符可以查看指定值的二进制表示形式,并对该二进制操作数逐位进行取反操作

  • 第 1 步:把运算数转换为 32 位的二进制整数。

  • 第 2 步:逐位进行取反操作。

  • 第 3 步:把二进制反码转换为十进制浮点数。

对 12 进行位非运算,则返回值为 -13。

console.LOG( ~ 12 );
      //返回值-13

下图以算式的形式解析了对 12 进行位非运算的过程。

如何按位取反计算

  按位取反的运算规则步骤:

  1、十进制转成原码

  转成二进制原码,最高位是符号位,0为正数,1为负数

    十进制   ---->
      原码      1   ---->
      00000001     -1   ---->
      10000001

  2、原码转成反码

  正数的反码就是原码,负数的反码是符号位不变,其余位取反

    十进制  ---->
       原码    ---->
      反码      1    ---->
     00000001 ---->
     00000001     -1    ---->
     10000001 ---->
     11111110

  3、反码转成补码

  正数的补码还是原码,负数的补码是在反码的基础上加1

    十进制  ---->
        原码   ---->
       反码   ---->
      补码      1    ---->
     00000001 ---->
     00000001 ---->
     00000001     -1    ---->
     10000001 ---->
     11111110 ---->
     11111111

  4、补码取反得原码

  正整数补码取反之后符号位置为1,是一个负整数,所以再按照负整数计算补码的方式逆运算得到原码

  逆运算得到原码,首先将取反的补码转成反码,公式:反码=补码 - 1,然后将反码转成原码,符号位不变,其他位取反

  十进制  ---->
        原码    ---->
       反码    ---->
       补码     ---->
      补码取反   ---->
      取反补码转成反码  ---->
      转成原码    1   ---->
     00000001  ---->
     0000001  ---->
      00000001  ---->
     11111110   ---->
       11111101    ---->
      10000010

  负整数补码取反之后符号位置为0,是一个正整数,因正整数的反码与补码就是本身,所以不需要再进行逆运算

  十进制  ---->
        原码    ---->
       反码     ---->
       补码      ---->
       补码取反得原码      -1  ---->
      10000001  ---->
     11111110  ---->
      11111111   ---->
         00000000    

  5、将原码转成二进制

 十进制  ---->
        原码    ---->
       反码    ---->
       补码     ---->
      补码取反   ---->
      取反补码转成反码  ---->
      转成原码  ---->
      转成二进制    1   ---->
     00000001  ---->
     0000001  ---->
      00000001  ---->
     11111110   ---->
       11111101    ---->
      10000010 ---->
       -2
  十进制  ---->
        原码    ---->
       反码     ---->
       补码      ---->
       补码取反得原码   ---->
      转成二进制    -1  ---->
      10000001  ---->
     11111110  ---->
      11111111   ---->
        00000000     ---->
         0

  所以,~1=-2,~-1=0

取反再取反~~的作用

  操作符~, 是按位取反的意思,表面上~~(取反再取反)没有意义,实际上在JS中可以将浮点数变成整数

 console.log(~~1.11);
              //1 console.log(~~-25.11);
           //-25

【相关推荐:javascript学习教程

以上就是javascript怎么进行按位求反的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

javascript

若转载请注明出处: javascript怎么进行按位求反
本文地址: https://pptw.com/jishu/593218.html
JavaScript怎样实现数组元素倒序排列 javascript怎么将16进制转为2进制

游客 回复需填写必要信息