文章目录
本文内容首发于 github仓库-正在起步阶段的前端知识库,其中记录了一名前端初学者的学习日记🤔&学习之路点点滴滴的记录(练手demo🧑💻,重要知识点🧐)
【1】位运算基础知识
按位与 a & b
【1】a b转换为二进制【2】进行按位运算 “且”的规则
0&0=0;
0&1=0;
1&0=0;
1&1=1;
- 利用这个特性可以快速判断一个数字是否为奇数(最后一个二进制是否为1)
(5 & 1) === 1;// true
(4 & 1) === 1;// false
按位或 a | b
【1】a b转换为二进制【2】进行按位运算 “或”的规则
0|0=0;
0|1=1;
1|0=1;
1|1=1;
异或 a ^ b
很有用的运算符!! 【1】a b转换为二进制【2】进行按位运算 “相同的数异或得0 任何数与0异或等于本身”的规则
通过这两个性质可以快速地从一堆情侣中找出一只单身🐕(???)
详见下面这道力扣
// 二进制
0^0=0 1^1=0
0^1=1 1^0=1
// 十进制
6 ^ 6 = 0
0 ^ 666 = 666
-
两个经典用法
-
找出没有重复得数(一组数,都是成对的,只有一个落单的)进行全部异或运算最终结果即为落单那个数
1^2^3^4^5^1^2^3^4 = (1^1)^(2^2)
-