JavaScript按位运算符~

Posted gzhjj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript按位运算符~相关的知识,希望对你有一定的参考价值。

1. javascript按位运算符

Bit operators work on 32 bits numbers.

2. JavaScript按位运算符~

值得注意的是,在JavaScript中,~5的值是-6,而不是10

The examples above uses 4 bits unsigned examples. But JavaScript uses 32-bit signed numbers.
Because of this, in JavaScript, ~ 5 will not return 10. It will return -6.
~00000000000000000000000000000101 will return 11111111111111111111111111111010

那么问题来了,为什么11111111111111111111111111111010等于-6?不妨先了解一下负数的二进制表示。
负数的绝对值的二进制表示为原码,对原码取反得到补码,负数的二进制表示就是该补码加1。
所以,-6的原码是00000000000000000000000000000110,补码是11111111111111111111111111111001,补码加1就是11111111111111111111111111111010

那么由11111111111111111111111111111010-6就是逆操作而已。

以上是关于JavaScript按位运算符~的主要内容,如果未能解决你的问题,请参考以下文章

javascript 按位运算符

如何处理 javascript 中的 256 位数字并对它们执行按位运算?

10个JavaScript代码片段,使你更加容易前端开发。

10个JavaScript代码片段,使你更加容易前端开发。

JS按位非(~)运算符与~~运算符的理解分析

非数字的按位运算