操作符中的按位非

按位非操作符由一个波浪线(~)表示,执行按位非的结果就是返回数值的反码。

按位非是ECMAScript操作符中少数几个与二进制计算有关的操作符之一。

var num1 = 25;                  // 二进制0000 0000 0000 0000 0000 0000 0001 1001
var num2 = ~num1;               // 二进制1111 1111 1111 1111 1111 1111 1110 0110
alert(num2);                    // -26

正数的补码 = 正数 本身

负数的补码 = 本身取反 +1

num1 = 25 的补码:0000 0000 0000 0000 0000 0000 0001 1001

按位非 取反码得到:1111 1111 1111 1111 1111 1111 1110 0110

第一位是符号位,反码第一位为 1 ,反码为负数,num2为负数

负数补码取反+1

取反后为:0000 0000 0000 0000 0000 0000 0001 1001

取反+1得:0000 0000 0000 0000 0000 0000 0001 1010

num2的补码:0000 0000 0000 0000 0000 0000 0001 1010

num2为 -26

正数:补码(x) = x

负数:补码(x) = -x - 1,

posted @ 2021-01-06 11:31  小安不菜  阅读(465)  评论(0)    收藏  举报