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