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学习教程】

更多关于云服务器域名注册虚拟主机的问题,请访问西部数码官网:www.west.cn

赞(0)
声明:本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-62778877-8306;邮箱:fanjiao@west.cn。本站原创内容未经允许不得转载,或转载时需注明出处:西部数码知识库 » javascript怎么进行按位求反

登录

找回密码

注册