在JavaScript中,按位取反运算符是 ~
。它对操作数的每一个二进制位执行NOT操作,即如果位为0,则变为1;如果位为1,则变为0。
基础概念:
优势:
~num
会返回一个非零值,如果 num
是负数)。应用场景:
~num
的结果是否为 -1
来判断 num
是否为非负数(注意这里的逻辑是反过来的,因为 ~
是取反操作)。示例代码:
let num = 5; // 二进制表示为 00000000000000000000000000000101
let notNum = ~num; // 二进制表示为 11111111111111111111111111111010,转换为十进制为 -6
console.log(notNum); // 输出 -6
// 判断一个数是否为非负数
if (~num !== -1) {
console.log("num 是负数");
} else {
console.log("num 是非负数"); // 这行会被执行
}
注意事项:
常见问题及解决方法:
~0
的结果是 -1
?
这是因为 0
的二进制表示是 00000000000000000000000000000000
,按位取反后变为 11111111111111111111111111111111
,这是32位有符号整数的-1表示。领取专属 10元无门槛券
手把手带您无忧上云