hand
_1_11_26
4
返回栏目
0k
2k
1k
2k
1k
1k
1k
2k
2k
2k
1k
2k
1k
2k
1k
1k
1k
1k
1k
2k
1k
1k
1k
1k
1k
1k
1k
1k
1k
2k
1k
1k
1k
1k
1k
1k
1k
1k
1k
2k
1k
1k
1k
1k
1k
1k
1k
2k
1k
2k
1k
1k
1k
1k
1k
1k
1k
2k
2k
1k
1k
1k
2k
1k
1k
2k
2k
1k
1k
1k
2k
1k
1k
2k
2k
1k
2k
1k
1k
2k
2k
2k
3k
3k
2k
3k
2k
3k
3k
3k
1k
2k
3k
2k
2k
3k
3k
2k
2k
6k
3k
2k
2k
5k
3k
4k
3k
3k
2k
4k
3k
3k
2k
3k
3k
1k
4k
4k
4k
2k
5k
3k
2k
3k
4k
3k
3k
4k
2k
3k
3k
4k
2k
2k
3k
4k
3k
3k
2k
5k
2k
3k
3k
3k
3k
2k
3k
3k
3k
2k
2k
2k
2k
3k
2k
2k
2k
3k
2k
2k
2k
2k
2k
2k
0.1k
0.2k
3k
2k
3k
2k
0.1k
2k
2k
4k
2k
2k
1k
2k
2k
3k
3k
3k
3k
2k
2k
3k
3k
3k
4k
3k
3k
4k
3k
2k
2k
3k
3k
3k
3k
3k
3k
2k
3k
3k
4k
4k
3k
3k
2k
2k
3k
2k
2k
1k
2k
3k
1k
2k
2k
2k
2k
2k
2k
2k
2k
2k
4k
2k
3k
2k
1k
2k
2k
2k
2k
2k
3k
2k
3k
1k
2k
2k
2k
0k
2k
2k
2k
2k
2k
2k
2k
3k
2k
2k
1k
1k
3k
2k
3k
1k
2k
1k
2k
2k
2k
2k
3k
1k
3k
2k
2k
2k
2k
2k
2k
1k
2k
2k
4k
3k
3k
2k
2k
2k
2k
2k
2k
4k
3k
3k
3k
2k
2k
2k
2k
2k
2k
3k
4k
返回前端 - Javascript栏目
作者:
贺及楼
成为作者
更新日期:2025-02-21 17:38:31
在 JavaScript 的世界里,位运算符就像是一群隐藏在幕后的神秘魔法师,它们不常被提及,但在某些特定的场景下却能发挥出巨大的威力。今天,我们就来揭开位运算符的神秘面纱,了解按位与、或、非等操作的奇妙之处。
位运算符是对二进制位进行操作的运算符。在 JavaScript 中,所有的数字都是以 64 位浮点数存储的,但在进行位运算时,会先将数字转换为 32 位整数,然后再进行操作,最后再转换回 64 位浮点数。
按位与运算符 &
会对两个数的每一位进行比较,如果两个对应位都为 1,则该位的结果为 1,否则为 0。
let a = 5; // 二进制表示为 0101
let b = 3; // 二进制表示为 0011
let result = a & b; // 二进制结果为 0001,十进制为 1
console.log(result);
在这个例子中,5 和 3 进行按位与操作,只有最后一位都是 1,所以结果是 1。按位与操作常用于判断一个数的奇偶性,因为奇数的二进制表示最后一位是 1,偶数是 0,所以一个数和 1 进行按位与操作,如果结果是 1 则为奇数,是 0 则为偶数。
function isOdd(num) {
return (num & 1) === 1;
}
console.log(isOdd(5));
console.log(isOdd(6));
按位或运算符 |
会对两个数的每一位进行比较,如果两个对应位中有一个为 1,则该位的结果为 1,只有当两个对应位都为 0 时,结果才为 0。
let c = 5; // 二进制表示为 0101
let d = 3; // 二进制表示为 0011
let resultOr = c | d; // 二进制结果为 0111,十进制为 7
console.log(resultOr);
在这个例子中,5 和 3 进行按位或操作,只要有一位是 1,结果对应的位就是 1,所以最终结果是 7。
按位非运算符 ~
会对一个数的每一位取反,即 0 变为 1,1 变为 0。
let e = 5; // 二进制表示为 0101
let resultNot = ~e; // 二进制结果为 1010(补码形式),十进制为 -6
console.log(resultNot);
按位非操作的结果是原数加 1 后取负,这是因为计算机中负数是以补码形式存储的。
运算符 | 名称 | 描述 | 示例 | ||
---|---|---|---|---|---|
& | 按位与 | 对应位都为 1 结果为 1,否则为 0 | 5 & 3 = 1 |
||
\ | 按位或 | 对应位有一个为 1 结果为 1,都为 0 结果为 0 | `5 | 3 = 7` | |
~ | 按位非 | 每一位取反 | ~5 = -6 |
位运算符虽然在日常开发中使用频率不高,但在处理一些底层操作、优化性能等方面有着独特的优势。掌握这些位运算符,就像是掌握了一把神奇的钥匙,能让你在 JavaScript 的世界里解锁更多的可能性。希望通过今天的介绍,你能对这些神秘的位运算符有更深入的了解。
前端 - Javascript
整章节共299节
快分享给你的小伙伴吧 ~