javascript如何进行按位求反

lxf2023-03-17 14:05:01

在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 开展位非计算的一个过程。

javascript如何进行按位求反

怎样按位取反测算

按位取反的运算规则流程:

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如何进行按位求反的具体内容,大量欢迎关注AdminJS其他类似文章!