Redis二进制位数组-Hamming Weight算法

BITCOUNT命令计算二进制位数组的一个步骤,是利用variable-precision SWAR算法来实现的,即计算Hamming Weight(简写为HW)的值。

https://www.cnblogs.com/NaLanZiYi-LinEr/p/11876246.html

{{{code

unit32_t swar(unit32_t i) {

//步骤1 每两个二进制位为一组进行分组,各组的十进制表示就是该组的HW

i = (i & 0x55555555) + ((i >> 1) & 0x55555555);

//步骤2 每四个二进制位为一组进行分组,各组的十进制表示就是该组的HW

i = (i & 0x33333333) + ((i >> 2) & 0x33333333);

//步骤3 每八个二进制位为一组进行分组,各组的十进制表示就是该组的HW

i = (i & 0x0F0F0F0F) + ((i >> 4) & 0x0F0F0F0F);

//步骤4 i*0x01010101语句计算出HW并记录在二进制位的高八位,>> 24通过右移运算,将HW移动到最低八位,就是最终的HW

i = (i*0x01010101) >> 24;

return i;

}

/}}}

 

28岁退休的程序员-有感

InfoQ上发布了一篇,关于一个28岁程序员“退休”的新闻。故事大概是这样的:

简单总结下我的感受吧。题目明显是为了吸引人起的,用以“骗取”所有程序员的关注。提前退休和实现财务自由应该不只是程序员的梦想吧,所以小编成功了。翻看文章仔细看,这种同学的成功路径是不可复制的,但是人生态度可以借鉴。实习进入支付宝,创业公司被字节跳动收购,投资房产、股票等等人生遭遇。虽然不是程序员的最顶尖水平,但是能入职支付宝在国内肯定是少之又少。据我所知,蚂蚁金服(前身是支付宝)有开发人员7500人,运行的应用有3k多,这还是几年前的数据。如果国内有400w-500w的开发者计算,国内仅有0.16%左右的人有可能进入支付宝;继而创业被收购,这个概率粗略估算也只有1~5%;最后又投资成功,哈哈,这个比例没法再小了。所以说看到这个新闻就幻想自己也能退休之类的,呵呵,还不如去买彩票中500w的概率大。

我不想酸谁,这样的遭遇谁都想遇到,如果他胆敢说:再让我过一遍人生我还能如此!嗯,这种人应该远离他。因为但凡是忽略环境影响,认为完全是自己优秀的,都是耍流氓。自己的努力必然是需要的,但只是必要条件,没人敢说是充分条件,像你一样优秀的人一定不少,为什么成功的是你?

 

https://mp.weixin.qq.com/s/Hh_5h1TbhLas0HaLTCtmIg