回复:smart指令执行速度

已锁定

阳春节拍

  • 帖子

    382
  • 精华

    2
  • 被关注

    5

论坛等级:侠士

注册时间:2023-03-01

钻石 钻石 如何晋级?

发布于 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位数。二分法向来多是无敌的!


看了上边几种方法,大家有没有觉得跟排序类似,每种应用都有无数种实现方法,且其时空复杂度相差极大。。。总有一种,我怎么没想到这样的方法的感觉

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8941条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。