发明名称 |
一种指数运算方法和装置 |
摘要 |
本发明提供了一种指数运算方法和装置,所述方法包括:存储若干步进值和对应的运算操作参数,根据输入指数的正负对输入指数进行预处理,指数运算开始时,设置移位加数据的初始值是1,首先把预处理指数和存储的若干步进值进行比较从而选择指数的步进值和对应的指数运算参数,把预处理指数和选择的步进值相减作为当前指数,把当前指数和存储的若干步进值进行比较再次选择指数的步进值和对应的指数运算参数,如此不重复地把当前指数与存储的步进值进行比较,直到当前指数小于存储的所有步进值,每一步都根据得到的指数运算参数对移位加数据进行移位或者移位和加法运算,最后根据输入指数的正负对把移位加数据进行处理后输出指数运算结果。 |
申请公布号 |
CN101510148A |
申请公布日期 |
2009.08.19 |
申请号 |
CN200910081340.0 |
申请日期 |
2009.04.02 |
申请人 |
北京中星微电子有限公司 |
发明人 |
尹宝林 |
分类号 |
G06F7/556(2006.01)I |
主分类号 |
G06F7/556(2006.01)I |
代理机构 |
北京亿腾知识产权代理事务所 |
代理人 |
陈 霁 |
主权项 |
1、一种指数运算方法,其特征在于,包括步骤:1)存储若干步进值和对应的若干运算操作参数,所述若干步进值是以指数运算的底为底的2i和(1+2j)的对数值,所述2i对应的运算操作参数是移位位数i,所述(1+2j)对应的运算操作参数是移位位数j以及加标志,所述i是整数,并且所述i≥1,所述j是整数,并且所述j≤-1;2)对输入指数的正负进行判断,输出正或负判断结果,并根据所述判断结果对所述输入指数进行预处理:当所述判断结果是正时,把所述输入指数输出作为预处理指数,否则,把所述输入指数和一个预设值相加后输出作为预处理指数,所述预设值是以指数运算的底为底的2k的对数值,所述k是整数,并且所述k>1;3)指数运算开始时,设置移位加数据的初始值是1;把所述预处理指数和所述存储的若干步进值进行比较:若所述预处理指数大于或者等于存储的一个或多个步进值,选择其中一个步进值作为当前步进值,把所述预处理指数和所述当前步进值相减的结果输出作为当前指数,并且根据所述当前步进值得到对应的当前运算操作参数,根据所述当前运算操作参数对所述移位加数据进行操作,所述操作是:若所述当前运算操作参数是移位位数i时,把所述移位加数据移i位后输出作为下一步骤的移位加数据,若所述当前运算操作参数是移位位数j以及加标志时,把所述移位加数据移j位后与所述移位加数据相加输出作为下一步骤的移位加数据;若预处理指数小于存储的所有步进值,输出所述移位加数据,转到步骤5);4)把所述当前指数和所述存储的若干步进值进行比较:若所述当前指数大于或者等于存储的一个或多个步进值,选择其中一个步进值作为当前步进值,把所述当前指数和所述当前步进值相减的结果作为下一重复本步骤时的当前指数,并且根据所述当前步进值得到对应的当前运算操作参数,根据所述当前运算操作参数对所述移位加数据进行操作,所述操作是:当所述当前运算操作参数是移位位数i时,把所述移位加数据移i位后作为下一重复本步骤时的移位加数据,当所述当前运算操作参数是移位位数j以及加标志时,把所述移位加数据移j位后与所述加数据相加作为下一重复本步骤时的移位加数据,重复步骤4);若所述当前指数小于存储的所有步进值,输出所述移位加数据;5)当所述输入指数的正或负判断结果为正时,把所述移位加的数据作为指数运算结果输出,当所述输入指数的正或负判断结果为负时,对所述移位加数据移-k位后输出指数运算结果,指数运算结束。 |
地址 |
100083北京市海淀区学院路35号世宁大厦16层 |