1. 什么是循环计数
从0到n之间循环依次取数,假设 n=3,那么我需要的如下数据 0,1,2,3,0,1,2…;现象就这样,我也不知道循环计数这个名词是否合适.姑且,就认为合适吧.
2. 常规实现
这点需求,相信对于所有的coder都小菜一碟.我们愉快的写下如下代码
// author: herbert 464884492
// 公众号: 小院不小
for(let i=0;i
3. 二进制实现
相信很多朋友,对于这么简单的需求.应该可以一口气实现好多个.姑且就一打吧.当然,我们今天的重点并不是讨论总共有多啊少种实现方式,这里的重点是二进制.好吧,那用二进制改怎么实现呢?
// author: herbert 464884492
// 公众号: 小院不小
let i=0;
while(true){
console.log(i++&0x3); // ++运算符优先级 17 逻辑与 16
// do something
// jump while
}
以上代码中,++先执行,再执行逻辑与.不清楚优先级的朋友,括号最好还是加上. 运算符优先级链接,我这里将其复制过来,所有优先级顺序如下
优先级 运算类型 关联性 运算符 20 圆括号 n/a(不相关) (…) 19 成员访问 从左到右 … . … 19 需要计算的成员访问 从左到右 … [ … ] 19 new(带参数列表) n/a new …( … ) 19 函数调用 从左到右 … ( … ) 19 可选链(Optional chanining) 从左到右 ?. 18 new(无参数列表) 从右到左 new … 17 后置递增 n/a …++ 17 后置递减 n/a …– 16 逻辑非 从右到左 ! … 16 按位非 从右到左 ~ … 16 一元加法 从右到左 + … 16 一元减法 从右到左 – … 16 前置递增 从右到左 ++ … 16 前置递减 从右到左 — … 16 typeof 从右到左 typeof … 16 void 从右到左 void … 16 delete 从右到左 delete … 16 await 从右到左 await … 15 幂 从右到左 … ** … 14 乘法 从左到右 … * … 14 除法 从左到右 … / … 14 取模 从左到右 … % … 13 加法 从左到右 … + … 13 减法 从左到右 … – … 12 按位左移 从左到右 …<
…+=…
…-=…
…*=…
…/=…
…%=…
…<
Original: https://www.cnblogs.com/yfrs/p/bincyc.html
Author: _herbert
Title: 二进制妙用之循环计数
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/608565/
转载文章受原作者版权保护。转载请注明原作者出处!