文章目录
JavaScript 作为一门动态语言,提供了多种运算符,其中 位运算符(Bitwise Operators) 是一组较少被使用但非常强大的运算符。本文将深入介绍
~(按位取反)运算符的作用、使用场景以及其在 JavaScript 开发中的实际应用。
一、~(按位取反)运算符简介
1. 什么是 ~ ?
~ 是 JavaScript 的 按位取反(Bitwise NOT) 运算符,它对数值的 每一位 进行翻转,即:
- 0 变成 1
- 1 变成 0
这个运算符的行为基于 32 位有符号整数 的二进制表示。它适用于 整数,但在 JavaScript 这种弱类型语言中,它也可以用于 隐式转换,甚至可以用于一些 特殊的技巧。
2. ~ 运算符的数学公式
在 JavaScript 中,~x 等价于:
~x = -(x + 1)
也就是说,~ 运算的结果是 负数,其值比原数字的相反数小 1。
示例:
console.log(~0); // -1
console.log(~1); // -2
console.log(~-1); // 0
console.log(~5); // -6
3. 为什么 ~x 等于 -(x + 1)?
让我们看一个 5 的二进制表示:
5 = 00000000 00000000 00000000 00000101 // 32 位二进制
~5 = 11111111 11111111 11111111 11111010 // 取反
在 JavaScript 的 二进制补码 规则下:
- 最高位
1表示负数 - 负数的二进制存储方式是 补码
取反后,11111111 11111111 11111111 11111010 在 补码表示 下的十进制数就是 -6,因此 ~5 = -6。
二、~ 运算符的应用场景
虽然 ~ 不是最常见的运算符,但它在某些场景中可以带来 简洁 和 高效 的代码

最低0.47元/天 解锁文章
470

被折叠的 条评论
为什么被折叠?



