一种快速首位元的取出和计算位元所在位置序方法技术

技术编号:8800932 阅读:223 留言:0更新日期:2013-06-13 05:38
本发明专利技术一种快速首位元的取出和计算位元所在位置序的方法,能快速高效取出首位元及快速高效计算出了位元位置序,传统方式实现需要的基本执行步骤是128+128=256步,而采用本发明专利技术只需要3+15=18步即可实现,有着明显的快速高效性。

【技术实现步骤摘要】

本专利技术涉及一种快速首位元的取出和计算位元所在位置序的方法。
技术介绍
首位元查找方法在很多领域中会应用到.例如,在工控行业对于实时性要求很高的处理场合优为重要,可对各类信号(例如CPU处理就是对位元的处理)高低优先级快速及时检出处理,亦可作为故障位元优先筛选处理等。图1是传统的首位元取出方法流程图,需要逐位循环判断,达到的计算执行步骤为128步。图3是传统的计算位元所在位置序的方法流程图,需要逐位循环判断,达到的计算执行步骤为128步。
技术实现思路
本专利技术的目的是为了解决实时控制系统对于快速高效率算法需求,提供一种快速首位元的取出和计算位元所在位置序的方法。一种快速首位元的取出和计算 位元所在位置序的方法,具体包括以下步骤:步骤1、首位元的取出:11、将被查找位元的对象值nDat作减I处理:nDat_l ;12、执行位与处理:nDat& (nDat-Ι);13、执行步骤12的结果与原变量nDat的减处理:unLsb=nDat_(nDat&(nDat-Ι)):14、返回查到位元的结果值unLsb ;步骤2、计算位元所在位置序:11、初始化位元所在位置序值nRet=0,变量nHarf指被比较的对半值nHarf=0xFFFF ;12、被比较的对半值变量右移一半处理,即nHarf =i ;13、执行高低半值位与操作,变量unLsb是步骤I中查到首位元的结果值:unLsb&nHarf;14、判断步骤13计算结果是否为O ;15、若为O则位元值在高半位,nRet+=i ;16、移位对半处理,即将高半位移到低半位,unLsb =i ;17、将步骤12至步骤16循环执行3次;18、返回找到的结果位元所在位置序值nRet=nRet+unLsb。采用本专利技术的技术方案后,实现了快速高效取出首位元的方法,及快速高效计算出了位元位置序,传统方式实现需要的基本执行步骤是128+128=256步,而采用本专利技术只需要3+15=18步即可实现,有着明显的快速高效性。附图说明图1是传统的首位元取出方法的流程图;图2是本专利技术的首位元取出方法的流程图;图3是传统的计算位元所在位置序方法的流程4是本专利技术快速高效计算位元位置序方法的流程图。以下结合附图和具体实施例对本专利技术作进一步详述。具体实施例方式如图2、4所示,本专利技术一种快速首位元的取出和计算位元所在位置序的方法,具体包括以下步骤:步骤1、首位元的取出:11、将被查找位元的对象值nDat作减I处理:nDat_l ;12、执行位与处理:nDat& (nDat-Ι);13、执行步骤12的结果与原变量nDat的减处理:unLsb=nDat_(nDat&(nDat-Ι)):14、返回查到位元的结果值unLsb ;步骤2、计算位元所在位置序:11、初始化位元所在位置序值nRet=0,变量nHarf指被比较的对半值nHarf=0xFFFF ;12、被比较的对半值变量右移一半处理,即nHarf>>=i ;13、执行高低半值位与操作,变量unLsb是步骤I中查到首位元的结果值:unLsb&nHarf;14、判断步骤13计算结果是否为O ;15、若为O则位元值在高半位,nRet+=i ;16、移位对半处理,即将高半位移到低半位,unLsb =i ;17、将步骤12至步骤16循环执行3次;18、返回找到的结果位元所在位置序值nRot=nRot+unLsb。以上所述,仅是本 专利技术较佳实施例而已,并非对本专利技术的技术范围作任何限制,故凡是依据本专利技术的技术实质对以上实施例所作的任何细微修改、等同变化与修饰,均仍属于本专利技术技术方案的范围内。本文档来自技高网...

【技术保护点】
一种快速首位元的取出和计算位元所在位置序的方法,其特征在于包括以下步骤:步骤1、首位元的取出:11、将被查找位元的对象值nDat作减1处理:nDat?1;12、执行位与处理:nDat&(nDat?1);13、执行步骤12的结果与原变量nDat的减处理:unLsb=nDat?(nDat&(nDat?1)):14、返回查到位元的结果值unLsb;步骤2、计算位元所在位置序:11、初始化位元所在位置序值nRet=0,变量nHarf指被比较的对半值nHarf=OxFFFF;12、被比较的对半值变量右移一半处理,即nHarf>>=i;13、执行高低半值位与操作,变量unLsb是步骤1中查到首位元的结果值:unLsb&nHarf;14、判断步骤13计算结果是否为0;15、若为0则位元值在高半位,nRet+=i;16、移位对半处理,即将高半位移到低半位,unLsb>>=i;17、将步骤12至步骤16循环执行3次;18、返回找到的结果位元所在位置序值nRet=nRet+unLsb。

【技术特征摘要】
1.一种快速首位元的取出和计算位元所在位置序的方法,其特征在于包括以下步骤: 步骤1、首位元的取出: .I1、将被查找位元的对象值nDat作减I处理:nDat_l; . 12、执行位与处理:nDat&(nDat-l); . 13、执行步骤12的结果与原变量nDat的减处理: unLsb=nDat-(nDat&(nDat-Ι)): . 14、返回查到位元的结果值unLsb; 步骤2、计算位元所在位置序:.11、初始化位元所在位置序值nRet=0,变量nHarf指被...

【专利技术属性】
技术研发人员:王天来陈国军张国煌杨玉圣
申请(专利权)人:泉州市桑川电气设备有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1