常用位运算方法
判断一个数的奇偶性
- • 奇数:返回 1
- • 偶数:返回 0
console.log(7 & 1); // 1 console.log(8 & 1) ; // 0
向下取整
// 不能对负数取整 console.log(~~11.71) // 11 console.log(11.71 >> 0) // 11 console.log(11.71 << 0) // 11 console.log(11.71 | 0) // 11 console.log(6.83 >>> 0) // 6
取中间值
console.log(12 >> 1); // 6
判断一个数是否等于目标数
let a = 4654; // 如何和目标数相等,则等于 0,否则等于其他数 if (a ^ 1171) { // 不等于的情况 console.log(12); } else { // 等于的情况 console.log(34); }
判断一个数是不是 2 的整数次幂, 如果是0,则说明这个数是 2 的整数次幂
n & (n - 1) // 是 0 则是 2 的整数次幂,不是则返回其他数 console.log(16 & (16 - 1)); // 0 console.log(15 & (15 - 1));
判断一个值是否存在
// before if (arr.indexOf(item) > -1) { // code } // 按位非:item 将会转换为 string 类型进行查找 if (~arr.indexOf(item)) { // code }
求一个数的相反数
// 求负数的相反数 console.log(~-n + 1); // n // 求正数的相反数 console.log(~n + 1); // -n
文章特殊字符描述
•问题标注 Q:(question)
•答案标注 R:(result)
•注意事项标准:A:(attention matters)
•详情描述标注:D:(detail info)
•总结标注:S:(summary)
•分析标注:Ana:(analysis)
•提示标注:T:(tips)