热点面试题: 常用位运算方法
前言
极度投入,深度沉浸,边界清晰
前端小菜鸡一枚,分享的文章纯属个人见解,若有不正确或可待讨论点可随意评论,与各位同学一起学习~
常用位运算方法
判断一个数的奇偶性
- 奇数:返回 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)
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦