恭喜,你发布的帖子
发布于 2024-09-23 08:23:51
2楼
举个例子哈,这几天扒了下论坛里前辈们关于程序执行效率的讨论,关于字中ON位数量这个应用,有几种优秀的实现方法,觉得有必要总结下。
一、8行(字节)LD位INC字节,很多人认为这种方法最优秀,但从字节改为字就不见得了。
二、编码解码,求字节中ON位数量时肯定是不优秀的,毕竟这个应用太简单了。
三、移位sm1.1法,放在for循环中最省事。
四、减1与逻辑法:若值x<>0则数量+1,执行逻辑运算and x-1 x,重复到结束。这个方法优秀在通过-1舍去最右一个on位,减少了循环次数,且DEC与WAND都是运算速度极高的指令。
五、二分移位法:依次将相邻2、4、8位进行移位相加,逐次得出相邻位中ON位的数量,最终得到总ON位数。二分法向来多是无敌的!
看了上边几种方法,大家有没有觉得跟排序类似,每种应用都有无数种实现方法,且其时空复杂度相差极大。。。总有一种,我怎么没想到这样的方法的感觉
请填写推广理由:
分享
只看
楼主