聪明的你,一定能发现.二进制实现好像有漏洞,假如我要0到4呢,通过上边的算法,得到结果全是0或4.所以这个和上篇一样一样有一个确权操作.这个权值必须满足二进制位全为1,所以能实现循环计数,有如下规律
2^0^=1
2^1^+2^0^=3
2^2^+2^1^+2^0^=7
2^3^+2^2^+2^1^+2^0^=15
....
这样计数的原理,主要利用二进制与运算特性以及位运算溢出实现置0操作.所有这个不仅有权值的局限性,还和操作系统位数有关系.所以,要使用这种方法,还是根据当前业务具体考虑是否可行.
5. 总结知识虽小,重在积累.2020注定是不平凡的一年.加油!!
欢迎感兴趣的朋友关注我的订阅号“小院不小”,或点击下方二维码关注。我将多年开发中遇到的难点,以及一些有意思的功能,体会都会一一发布到我的订阅号中