js中的运算符~

在js中,运算符"~"到底做了什么?

规律很容易找到    -(x+1)

~5=-6

百度了很多文章,基本都只是说按位取反,然后自己算了一下

例如    1    二进制为00000001    取反后    11111110    明显不对

其实不是这样子算的,因为有符号数是以补码的形式存储的

(当然,js中只有一种数字类型,64位浮点格式)

1在计算机中的值:0000001(正数的原、反、补是一样的)

取反后:11111110(这是一个负数,反码=补码+1)

补码:11111101(那么补码=反码-1)

原码:10000010(十进制为-2)

那么有什么用呢?

目前,我看到的是

~~    转换成数字并且把小数点去掉    效率比Math.floor高

!!~    判断一个数是否大于0    大于0 返回true    小于0返回false

这里也就大致讲个明白,如果有错,请指出,谨防误导他人

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。