为什么〜0是-1?

Der*_*會功夫 5 javascript math binary

所以当我读到的时候~,

在每个位上执行NOT运算符.

所以我尝试过:

 0 = 00000000000000000000000000000000

         so ~0 should be

~0 = 11111111111111111111111111111111
Run Code Online (Sandbox Code Playgroud)

但是当我尝试时,它会返回-1.是不是11111111111111111111111111111111就是4294967295十进制?

Dan*_*her 9

它被解释为有符号整数,并且在二进制补码中,所有位为1的整数是-1.


Amb*_*ber 7

仅当类型未签名时.有符号整数使用最高位作为否定标志 - 因此将其设置为1会产生负数.见两个补语.


K-b*_*llo 6

所有1s的位模式是4294967295无符号整数,或者是超过32位的有符号整数.对于有符号整数32位表示为两个互补-1.