写点什么

热点面试题: 常用位运算方法

作者:控心つcrazy
  • 2023-02-17
    中国香港
  • 本文字数:958 字

    阅读完需:约 3 分钟

热点面试题: 常用位运算方法

前言

极度投入,深度沉浸,边界清晰

前端小菜鸡一枚,分享的文章纯属个人见解,若有不正确或可待讨论点可随意评论,与各位同学一起学习~

欢迎关注 『前端进阶圈』 公众号 ,一起探索学习前端技术......

公众号回复 加群扫码, 即可加入前端交流学习群,长期交流学习......

公众号回复 加好友,即可添加为好友

常用位运算方法

判断一个数的奇偶性

  • 奇数:返回 1

  • 偶数:返回 0


console.log(7 & 1);    // 1console.log(8 & 1) ;   // 0
复制代码

向下取整

// 不能对负数取整console.log(~~11.71)     // 11console.log(11.71 >> 0)  // 11console.log(11.71 << 0)  // 11console.log(11.71 | 0)   // 11console.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)); // 0console.log(15 & (15 - 1));
复制代码

判断一个值是否存在

// beforeif (arr.indexOf(item) > -1) {    // code}
// 按位非:item 将会转换为 string 类型进行查找if (~arr.indexOf(item)) { // code}
复制代码

求一个数的相反数

// 求负数的相反数console.log(~-n + 1);   // n// 求正数的相反数console.log(~n + 1);  // -n
复制代码

文章特殊字符描述:

  1. 问题标注 Q:(question)

  2. 答案标注 R:(result)

  3. 注意事项标准:A:(attention matters)

  4. 详情描述标注:D:(detail info)

  5. 总结标注:S:(summary)

  6. 分析标注:Ana:(analysis)

  7. 提示标注:T:(tips)

往期回顾:

最后:

  • 欢迎关注 『前端进阶圈』 公众号 ,一起探索学习前端技术......

  • 公众号回复 加群扫码, 即可加入前端交流学习群,长期交流学习......

  • 公众号回复 加好友,即可添加为好友

发布于: 刚刚阅读数: 3
用户头像

还未添加个人签名 2021-10-17 加入

还未添加个人简介

评论

发布
暂无评论
热点面试题: 常用位运算方法_JavaScript_控心つcrazy_InfoQ写作社区