CN111399803B - 除法运算方法、装置、存储介质及电子设备 - Google Patents
除法运算方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN111399803B CN111399803B CN201910005299.2A CN201910005299A CN111399803B CN 111399803 B CN111399803 B CN 111399803B CN 201910005299 A CN201910005299 A CN 201910005299A CN 111399803 B CN111399803 B CN 111399803B
- Authority
- CN
- China
- Prior art keywords
- divisor
- reciprocal
- target constant
- determining
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4873—Dividing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Nonlinear Science (AREA)
- General Engineering & Computer Science (AREA)
- Advance Control (AREA)
Abstract
本公开涉及一种除法运算方法、装置、存储介质及电子设备,以减少除法运算的计算资源。该除法运算方法包括:在预设查找表中确定与除数的差值最小的目标常数,其中,所述预设查找表中存储有将预设区间划分成N个子区间得到的(N+1)个常数以及所述(N+1)个常数分别对应的倒数、所述(N+1)个常数分别对应的平方的倒数,所述N为大于1的正整数;根据所述目标常数的倒数、所述目标常数的平方的倒数以及所述除数减去所述目标常数的差值,计算所述除数的倒数;将所述倒数与被除数相乘的结果确定为除法运算结果。
Description
技术领域
本公开涉及数字信号处理技术领域,具体地,涉及一种除法运算方法、装置、存储介质及电子设备。
背景技术
在数字信号处理技术领域,绝大部分数字信号处理算法可以通过加减乘除四种基本运算来实现。其中,除法运算主要是通过以下方式实现的:
假设被除数为n位,除数为m位,首先将除数向左移n-m位,然后比较被除数和除数的大小:当被除数小于除数时,将被除数向右移动一位后再与被除数比较大小。当被除数大于或等于除数时,将除数与被除数做减法,然后将减法结果作为新的除数进行计算,同时商加1,直到被除数小于除数。
可见,相关技术中的除法运算需要不断判断被除数与除数的大小,作减法运算,运算周期较长,耗费的运算资源较多。
发明内容
本公开的目的是提供一种除法运算方法、装置、存储介质及电子设备,以减少除法运算耗费的运算资源。
为了实现上述目的,第一方面,本公开提供一种除法运算方法,包括:
在预设查找表中确定与除数的差值最小的目标常数,其中,所述预设查找表中存储有将预设区间划分成N个子区间得到的(N+1)个常数以及所述(N+1)个常数分别对应的倒数、所述(N+1)个常数分别对应的平方的倒数,所述N为大于1的正整数;
根据所述目标常数的倒数、所述目标常数的平方的倒数以及所述除数减去所述目标常数的差值,计算所述除数的倒数;
将所述倒数与被除数相乘的结果确定为除法运算结果。
可选地,所述根据所述目标常数的倒数、所述目标常数的平方的倒数以及所述除数减去所述目标常数的差值,计算所述除数的倒数,包括:
按照以下公式,根据所述目标常数的倒数、所述目标常数的平方的倒数以及所述除数减去所述目标常数的差值,计算所述除数的倒数:
可选地,所述方法还包括:
确定所述除数是否在所述预设区间内;
如果所述除数不在所述预设区间内,则将所述除数移位至所述预设区间;
所述在预设查找表中确定与除数的差值最小的目标常数,包括:
在预设查找表中确定与所述移位后除数的差值最小的目标常数;
所述根据所述目标常数的倒数、所述目标常数的平方的倒数以及所述除数减去所述目标常数的差值,计算所述除数的倒数,包括:
根据所述目标常数的倒数、所述目标常数的平方的倒数以及所述移位后的除数减去所述目标常数的差值,计算所述移位后除数的倒数;
所述将所述倒数与被除数相乘的结果确定为除法运算结果,包括:
根据所述倒数与所述被除数相乘的结果以及所述移位的位数,确定所述除法运算结果。
可选地,所述N个子区间中每个子区间的长度相同,所述在预设查找表中确定与除数的差值最小的目标常数,包括:
计算所述除数与所述预设区间的起始数值间的目标差值;
确定所述目标差值与所述每个子区间的长度值之间的倍数n*,所述n*为大于等于0的正整数;
将所述预设查找表中第(n*+1)个常数确定为所述目标常数。
可选地,所述被除数和除数为有符号数,在预设查找表中确定与除数的差值最小的目标常数之前,所述方法还包括:
将所述除数和所述被除数转换为无符号数;
所述将所述倒数与被除数相乘的结果确定为除法运算结果,包括:
确定所述倒数与被除数的相乘结果;
当所述被除数与所述除数的符号相同时,将正值的所述相乘结果确定为除法运算结果;
当所述被除数与所述除数的符号不相同时,将负值的所述相乘结果确定为除法运算结果。
第二方面,本公开还提供一种除法运算装置,包括:
第一确定模块,用于在预设查找表中确定与除数的差值最小的目标常数,其中,所述预设查找表中存储有将预设区间划分成N个子区间得到的(N+1)个常数以及所述(N+1)个常数分别对应的倒数、所述(N+1)个常数分别对应的平方的倒数,所述N为大于1的正整数;
倒数计算模块,用于根据所述目标常数的倒数、所述目标常数的平方的倒数以及所述除数减去所述目标常数的差值,计算所述除数的倒数;
第二确定模块,用于将所述倒数与被除数相乘的结果确定为除法运算结果。
可选地,所述倒数计算模块用于:
按照以下公式,根据所述目标常数的倒数、所述目标常数的平方的倒数以及所述除数减去所述目标常数的差值,计算所述除数的倒数:
可选地,所述装置还包括:
第三确定模块,用于确定所述除数是否在所述预设区间内;
移位模块,用于在所述除数未在所述预设区间内时,将所述除数移位至所述预设区间;
所述第一确定模块用于在预设查找表中确定与所述移位后除数的差值最小的目标常数;
所述倒数计算模块用于根据所述目标常数的倒数、所述目标常数的平方的倒数以及所述移位后的除数减去所述目标常数的差值,计算所述移位后除数的倒数;
所述第二确定模块用于根据所述倒数与所述被除数相乘的结果以及所述移位的位数,确定除法运算结果。
可选地,所述N个子区间中每个子区间的长度相同,所述第一确定模块用于:
计算所述除数与所述预设区间的起始数值间的目标差值;
确定所述目标差值与所述每个子区间的长度值之间的倍数n*,所述n*为大于等于0的正整数;
将所述预设查找表中第(n*+1)个常数确定为所述目标常数。
可选地,所述被除数和除数为有符号数,所述装置还包括:
第四确定模块,用于在预设查找表中确定与除数的差值最小的目标常数之前,将所述除数和所述被除数转换为无符号数;
所述第二确定模块用于:
确定所述倒数与被除数的相乘结果;
当所述被除数与所述除数的符号相同时,将正值的所述相乘结果确定为除法运算结果;
当所述被除数与所述除数的符号不相同时,将负值的所述相乘结果确定为除法运算结果。
第三方面,本公开还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面里任一项所述方法的步骤。
第四方面,本公开还提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现第一方面里任一项所述方法的步骤。
通过上述技术方案,可以先在预设查找表中确定与除数差值最小的目标常数,然后根据目标常数的倒数、目标常数的平方的倒数以及除数减去目标常数的差值,计算除数的倒数,最后将该倒数与被除数相乘的结果确定为除法运算。由于目标常数的倒数以及目标常数的平方的倒数可以直接在预设查找表中确定,因此,减少了除法运算过程中耗费的运算资源。并且,通过将倒数与被除数相乘的方式,无需将被除数与除数进行多次减法运算,运算周期较短,从而可以提高除法运算效率。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据本公开一示例性实施例示出的一种除法运算方法的流程图;
图2是根据本公开另一示例性实施例示出的一种除法运算方法的流程图;
图3是根据本公开一示例性实施例示出的一种除法运算装置的框图;
图4是根据本公开一示例性实施例示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
图1是根据本公开一示例性实施例示出的一种除法运算方法。参照图1,该除法运算方法包括以下步骤:
步骤S101,在预设查找表中确定与除数的差值最小的目标常数。
步骤S102,根据所述目标常数的倒数、所述目标常数的平方的倒数以及所述除数减去所述目标常数的差值,计算所述除数的倒数。
步骤S103,将所述倒数与被除数相乘的结果确定为除法运算结果。
通过上述技术方案,由于目标常数的倒数以及目标常数的平方的倒数可以直接在预设查找表中确定,因此,可以减少除法运算过程中耗费的运算资源。并且,通过将倒数与被除数相乘的方式,无需将被除数与除数进行多次减法运算,运算周期较短,从而可以提高除法运算效率。
为了使本领域技术人员更加理解本公开实施例提供的技术方案,下面对上述步骤进行详细举例说明。
在步骤S101中,预设查找表中可以存储将预设区间划分成N个子区间得到的(N+1)个常数以及该(N+1)个常数分别对应的倒数、该(N+1)个常数分别对应的平方的倒数,其中,N为大于1的正整数。
示例地,预设区间和子区间的长度可以根据实际情况进行不同的设定,比如,可以将预设区间设定为[0.5,1),子区间的长度可以设定为0.0625,等等,本公开实施例对此不作限定。
应当理解的是,为了便于除法运算的计算,预设区间的初始数值和结束数值应当相差与所使用进制相对应的一个数量级,比如,在上述举例中预设区间为[0.5,1)的情况,0.5可以转换为2-1,1可以转换为20,在二进制除法运算中,这两者相差了一个数量级。
另外,应当理解的是,N个子区间中每个子区间的长度值可以不相同,也可以相同,本公开实施例对此不作限定。如果每个子区间的长度值相同,即预设区间可以被均匀划分成N个子区间,在此种情况下,可以更加快速地进行除法运算,提高了除法运算效率。
示例地,N可以根据用户对于计算精度的要求和/或进行除法运算的处理器、电子设备等装置实际的数据位宽进行不同的设定,本公开实施例对此不作限定。应当理解的是,如果用户对于计算精度要求较低,则可以将N设定得较小。反之,则可以在数据位宽满足条件的情况下将N设定得较大。
例如,预设区间可以设置为[0.5,1),N可以设置为8,子区间的长度可以设置为0.0625,那么预设查找表可以如表1所示。
表1
参照表1,第一行为将预设区间[0.5,1)以0.0625的均匀间隔进行划分得到的9个常数,第二行为该9个常数分别对应的倒数,第三行为该9个常数分别对应的平方的倒数。其中,第一个常数0.5和第二个常数0.5625之间为第一个均匀间隔,第二个常数0.5625与第三个常数0.625之间为第二个均匀间隔,以此类推,可以得到如表1所示的将预设区间[0.5,1)以子区间长度为0.0625划分成8个子区间而得到的9个常数。然后可以计算该9个常数分别对应的倒数以及该9个常数分别对应的平方的倒数,分别存入该预设查找表中。
在一种可能的方式中,N个子区间中每个子区间的长度相同,相应地,在预设查找表中确定与除数的差值最小的目标常数可以是先计算除数与预设区间的起始数值间的目标差值,然后确定目标差值与每个子区间的长度值之间的倍数n*,最后将预设查找表中第(n*+1)个常数确定为目标常数,其中,n*为大于等于0的正整数。
其中,y表示除数,表示向下取整,和“+0.5”共同作用可以实现四舍五入的功能。(y-0.5)表示该除数与预设区间的起始数值间的目标差值,比如,除数为0.5625,那么可以确定该目标差值为0.0625。
然后,可以根据该目标差值与每个子区间的长度值,确定倍数n*。在公式(1)中,可以将目标差值乘以2N,即乘以16,从而确定出目标差值与每个子区间的长度值之间的倍数。比如,子区间长度值为0.0625,目标差值为0.0625,将该目标差值0.0625(1/16)与2N(16)相乘,可以得到1,即可以确定目标差值与子区间长度值之间的倍数为1。
最后,可以根据该倍数在预设差值表中进行查找。比如,倍数为1,则可以说明目标常数是与预设区间的起始数值相差一个均匀间隔的常数,即为预设查找表中的第二个常数。因此,本公开实施例中,在确定目标差值与每个子区间的长度值之间的倍数n*之后,可以将预设差值表中第(n*+1)个常数确定为目标常数。
应当理解的是,在二进制除法运算中,为了减少运算资源,在根据公式(1)进行计算时,可以将N设定为2的整次幂,因此,公式(1)中的“·2N”运算可以通过移位操作实现,而无需进行乘法操作,进一步减少了运算资源。
在预设查找表中确定与除数的差值最小的目标常数之后,可以根据该目标常数的倒数、该目标常数的平方的倒数以及除数减去目标常数的差值,计算除数的倒数。
在一种可能的方式中,可以按照以下公式,根据目标常数的倒数、目标常数的平方的倒数以及除数减去目标常数的差值,计算除数的倒数:
示例地,可以采用泰勒级数对除数的倒数进行近似计算,具体的,可以参照以下公式进行推导得到如公式(2)所示的倒数计算公式:
其中,C表示预设查找表中的任一常数,f(·)表示函数映射关系(以下简称函数),f(Δ)表示函数f(·)在Δ的值,f(0)表示函数f(·)在0的值,f'(0)表示函数f(·)在0点的导数值,Δ表示除数减去常数C的差值。应当理解的是,在确定与除数差值最小的目标常数之后,公式(3)中的常数C即表示该目标常数
在确定除数的倒数之后,可以将该倒数与被除数相乘的结果确定为除法运算结果,无需将被除数与除数进行多次减法运算,从而减少了运算资源,提高了除法运算效率。
例如,被除数为0.7,除数为0.8,预设区间为[0.5,1),N为8,预设查找表如表1所示。首先,可以按照公式(1)在预设查找表中确定与除数的差值最小的目标常数。其中,可以先确定除数0.8与预设区间的起始数值0.5间的目标差值为0.3,然后计算“0.3·2N”,可以得到计算结果为4.8,按照四舍五入的方法取整,有即n*为5,从而可以将表1所示的预设查找表中第6(5+1)个常数确定为目标常数,即将该预设查找表中的常数0.8125确定为目标常数,同时可以在预设查找表中确定该目标常数的倒数为1.23077,以及该目标常数的平方的倒数为1.51479。
然后,可以确定除数0.8减去目标常数0.8125的差值-0.0125,从而可以按照公式(2),根据目标常数的倒数、目标常数的平方的倒数以及除数减去目标常数的差值,确定除数的倒数: 最后,可以将该倒数1.249705与被除数0.7的相乘结果0.8747935确定为本次除法运算结果。本例中0.7/0.8=0.8747935是因为对N的设定较小,仅仅得到近似值,如果用户对于计算精度要求较低,则可以将N设定得较小。反之,则可以在数据位宽满足条件的情况下将N设定得较大,这样就会得到更精确的值。
在上述整个过程中,公式(1)的计算需要2次加法和1次移位,公式(2)的计算需要2次加法和1次乘法,即整个除法运算可以通过4次加法运算、1次乘法和1次移位实现,其中移位几乎不消耗计算资源,因此本公开的除法运算资源可以极大程度上减少计算量,提高除法运算的效率。
在一种可能的方式中,考虑到被除数和除数可能为无符号数,也可能为有符号数,如果被除数和除数为有符号数,那么在进行除法运算时,还需考虑被除数和除数的符号影响,即可以在被除数和除数的符号相同的情况下,确定除法运算结果为正,而在被除数和除数的符号不相同的情况下,确定除法运算结果负。
因此,如果被除数和除数为有符号数,在步骤S101之前,还可以将所述除数和所述被除数转换为无符号数,相应地,在步骤S103中,可以将倒数与被除数相乘,然后当被除数与除数的符号相同时,将正值的该相乘结果确定为除法运算结果,当被除数与除数的符号不相同时,将负值的该相乘结果确定为除法运算结果。
示例地,将除数和被除数转换为无符号数可以是对被除数和除数取绝对值后进行计算,或者也可以是通过其他方式将被除数和除数确定为无符号数,等等,本公开实施例对此不作限定。
例如,被除数为+0.7,除数为-0.8,即被除数与除数为有符号数,且两者符号不相同,那么可以首先对被除数+0.7和除数-0.8取绝对值,分别得到07和0.8。然后可以按照步骤S101和步骤S102进行计算,得到取绝对值后的除数的倒数为1.249705,并可以确定该倒数1.249705与取绝对值后的被除数0.7的相乘结果0.8747935。最后,由于被除数与除数符号不一致,因此,将负值的相乘结果确定为本次除法运算结果,即可以将-0.8747935确定为本次除法运算结果。
在一种可能的方式中,还可以确定除数是否在预设区间内,如果除数不在预设区间内,则将除数移位至预设区间。相应地,步骤S101可以是在预设查找表中确定与所述移位后除数的差值最小的目标常数,步骤S102可以是根据所述目标常数的倒数、所述目标常数的平方的倒数以及所述移位后的除数减去所述目标常数的差值,计算所述移位后除数的倒数,步骤S103可以是根据所述倒数与所述被除数相乘的结果以及所述移位的位数,确定所述除法运算结果。
如果除数的位数特别多,那么将除数移位至预设区间进行计算,可以减少运算资源的消耗。比如,在十进制下,除数为80000000000,预设区间为[0.1,1),该除数未在该预设区间内,那么可以将该除数向右移11位,得到0.8用于除法运算,相较于直接将除数80000000000用于除法运算,移位后进行运算的方式可以减少运算资源。又例如,在二进制下,除数为0.4,预设区间为[0.5,1),该除数未在该预设区间内,那么可以将该除数向右移1位,得到0.8用于除法运算,相较于直接将除数0.4用于除法运算,移位后进行运算的方式可以减少目标常数的位数数量,相应地可以减少存储。
下面以另一个示例性实施例对本公开的除法运算方法进行说明。
参照图2,将预设区间划分为N个子区间,每个子区间的长度值相同,该除法运算方法可以包括以下步骤:
步骤S201,确定除数是否在预设区间内,如果除数未处于预设区间内,则进入步骤S202,否则进入步骤S203。
步骤S202,将除数移位至预设区间,并将移位后的除数确定为目标除数。
步骤S203,将除数确定为目标除数。
步骤S204,计算目标除数与预设区间的起始数值间的目标差值。
步骤S205,确定目标差值与每个子区间的长度值之间的倍数n*。
步骤S206,将预设查找表中第(n*+1)个常数确定为目标常数。
步骤S207,根据目标常数的倒数、目标常数的平方的倒数和目标除数减去目标常数的差值,确定除数的倒数。
步骤S208,根据倒数与被除数相乘的结果以及移位的位数,确定除法运算结果。
上述各步骤的详细实施过程已在上文进行详细说明,这里不再赘述。
通过上述技术方案,由于目标常数的倒数以及目标常数的平方的倒数可以直接在预设查找表中确定,因此,减少了除法运算过程中耗费的运算资源。并且,通过将倒数与被除数相乘的方式,无需将被除数与除数进行多次减法运算,运算周期较短,从而可以提高除法运算效率。
基于同一发明构思,参照图3,本公开还提供一种除法运算装置300,该装置可以通过软件、硬件或两者结合实现的方式成为电子设备的部分或全部,该除法运算装置300可以包括:
第一确定模块301,用于在预设查找表中确定与除数的差值最小的目标常数,其中,所述预设查找表中存储有将预设区间划分成N个子区间得到的(N+1)个常数以及所述(N+1)个常数分别对应的倒数、所述(N+1)个常数分别对应的平方的倒数,所述N为大于1的正整数;
倒数计算模块302,用于根据所述目标常数的倒数、所述目标常数的平方的倒数以及所述除数减去所述目标常数的差值,计算所述除数的倒数;
第二确定模块303,用于将所述倒数与被除数相乘的结果确定为除法运算结果。
可选地,所述倒数计算模块302用于:
按照以下公式,根据所述目标常数的倒数、所述目标常数的平方的倒数以及所述除数减去所述目标常数的差值,计算所述除数的倒数:
可选地,所述装置300还包括:
第三确定模块,用于确定所述除数是否在所述预设区间内;
移位模块,用于在所述除数未在所述预设区间内时,将所述除数移位至所述预设区间;
所述第一确定模块301用于在预设查找表中确定与所述移位后除数的差值最小的目标常数;
所述倒数计算模块302用于根据所述目标常数的倒数、所述目标常数的平方的倒数以及所述移位后的除数减去所述目标常数的差值,计算所述移位后除数的倒数;
所述第二确定模块303用于根据所述倒数与所述被除数相乘的结果以及所述移位的位数,确定除法运算结果。
可选地,所述N个子区间中每个子区间的长度相同,所述第一确定模块301用于:
计算所述除数与所述预设区间的起始数值间的目标差值;
确定所述目标差值与所述每个子区间的长度值之间的倍数n*,所述n*为大于等于0的正整数;
将所述预设查找表中第(n*+1)个常数确定为所述目标常数。
可选地,所述被除数和除数为有符号数,所述装置300还包括:
第四确定模块,用于在预设查找表中确定与除数的差值最小的目标常数之前,将所述除数和所述被除数转换为无符号数;
所述第二确定模块303用于:
确定所述倒数与被除数的相乘结果;
当所述被除数与所述除数的符号相同时,将正值的所述相乘结果确定为除法运算结果;
当所述被除数与所述除数的符号不相同时,将负值的所述相乘结果确定为除法运算结果。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
通过上述任一除法运算装置,由于目标常数的倒数以及目标常数的平方的倒数可以直接在预设查找表中确定,因此,减少了除法运算过程中耗费的运算资源。并且,通过将倒数与被除数相乘的方式,无需将被除数与除数进行多次减法运算,运算周期较短,从而可以提高除法运算效率。
基于同一发明构思,本公开还提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现上述任一除法运算方法的步骤。
通过上述电子设备,由于目标常数的倒数以及目标常数的平方的倒数可以直接在预设查找表中确定,因此,减少了除法运算过程中耗费的运算资源。并且,通过将倒数与被除数相乘的方式,无需将被除数与除数进行多次减法运算,运算周期较短,从而可以提高除法运算效率。
在一种可能的方式中,该电子设备的框图可以如图4所示。参照图4,该电子设备400可以包括:处理器401,存储器402。该电子设备400还可以包括多媒体组件403,输入/输出(I/O)接口404,以及通信组件405中的一者或多者。
其中,处理器401用于控制该电子设备400的整体操作,以完成上述的除法运算方法中的全部或部分步骤。存储器402用于存储各种类型的数据以支持在该电子设备400的操作,这些数据例如可以包括用于在该电子设备400上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如预设查找表、除数的倒数等等。该存储器402可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(StaticRandom Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically ErasableProgrammable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(ErasableProgrammable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
多媒体组件403可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器402或通过通信组件405发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口404为处理器401和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。
通信组件405用于该电子设备400与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G、4G、NB-IOT、eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件407可以包括:Wi-Fi模块,蓝牙模块,NFC模块等等。
在一示例性实施例中,电子设备400可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的除法运算方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的除法运算方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器402,上述程序指令可由电子设备400的处理器401执行以完成上述的除法运算方法。
通过上述存储介质,由于目标常数的倒数以及目标常数的平方的倒数可以直接在预设查找表中确定,因此,减少了除法运算过程中耗费的运算资源。并且,通过将倒数与被除数相乘的方式,无需将被除数与除数进行多次减法运算,运算周期较短,从而可以提高除法运算效率。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (12)
1.一种除法运算方法,其特征在于,包括:
在预设查找表中确定与除数的差值最小的目标常数,其中,所述预设查找表中存储有将预设区间划分成N个子区间得到的N+1个常数以及所述N+1个常数分别对应的倒数、所述N+1个常数分别对应的平方的倒数,所述N为大于1的正整数;
根据所述目标常数的倒数、所述目标常数的平方的倒数以及所述除数减去所述目标常数的差值,通过泰勒级数计算所述除数的倒数;
将所述倒数与被除数相乘的结果确定为除法运算结果。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述除数是否在所述预设区间内;
如果所述除数不在所述预设区间内,则将所述除数移位至所述预设区间;
所述在预设查找表中确定与除数的差值最小的目标常数,包括:
在预设查找表中确定与所述移位后除数的差值最小的目标常数;
所述根据所述目标常数的倒数、所述目标常数的平方的倒数以及所述除数减去所述目标常数的差值,通过泰勒级数计算所述除数的倒数,包括:
根据所述目标常数的倒数、所述目标常数的平方的倒数以及所述移位后除数减去所述目标常数的差值,通过泰勒级数计算所述移位后除数的倒数;
所述将所述倒数与被除数相乘的结果确定为除法运算结果,包括:
根据所述倒数与所述被除数相乘的结果以及所述移位的位数,确定所述除法运算结果。
4.根据权利要求1所述的方法,其特征在于,所述N个子区间中每个子区间的长度相同,所述在预设查找表中确定与除数的差值最小的目标常数,包括:
计算所述除数与所述预设区间的起始数值间的目标差值;
确定所述目标差值与所述每个子区间的长度值之间的倍数n*,所述n*为大于等于0的正整数;
将所述预设查找表中第n*+1个常数确定为所述目标常数。
5.根据权利要求1-4任一所述的方法,其特征在于,所述被除数和除数为有符号数,在预设查找表中确定与除数的差值最小的目标常数之前,所述方法还包括:
将所述除数和所述被除数转换为无符号数;
所述将所述倒数与被除数相乘的结果确定为除法运算结果,包括:
确定所述倒数与被除数的相乘结果;
当所述被除数与所述除数的符号相同时,将正值的所述相乘结果确定为除法运算结果;
当所述被除数与所述除数的符号不相同时,将负值的所述相乘结果确定为除法运算结果。
6.一种除法运算装置,其特征在于,包括:
第一确定模块,用于在预设查找表中确定与除数的差值最小的目标常数,其中,所述预设查找表中存储有将预设区间划分成N个子区间得到的N+1个常数以及所述N+1个常数分别对应的倒数、所述N+1个常数分别对应的平方的倒数,所述N为大于1的正整数;
倒数计算模块,用于根据所述目标常数的倒数、所述目标常数的平方的倒数以及所述除数减去所述目标常数的差值,通过泰勒级数计算所述除数的倒数;
第二确定模块,用于将所述倒数与被除数相乘的结果确定为除法运算结果。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第三确定模块,用于确定所述除数是否在所述预设区间内;
移位模块,用于在所述除数未在所述预设区间内时,将所述除数移位至所述预设区间;
所述第一确定模块用于在预设查找表中确定与所述移位后除数的差值最小的目标常数;
所述倒数计算模块用于根据所述目标常数的倒数、所述目标常数的平方的倒数以及所述移位后的除数减去所述目标常数的差值,通过泰勒级数计算所述移位后除数的倒数;
所述第二确定模块用于根据所述倒数与所述被除数相乘的结果以及所述移位的位数,确定除法运算结果。
9.根据权利要求6所述的装置,其特征在于,所述N个子区间中每个子区间的长度相同,所述第一确定模块用于:
计算所述除数与所述预设区间的起始数值间的目标差值;
确定所述目标差值与所述每个子区间的长度值之间的倍数n*,所述n*为大于等于0的正整数;
将所述预设查找表中第n*+1个常数确定为所述目标常数。
10.根据权利要求6-9任一项所述的装置,其特征在于,所述被除数和除数为有符号数,所述装置还包括:
第四确定模块,用于在预设查找表中确定与除数的差值最小的目标常数之前,将所述除数和所述被除数转换为无符号数;
所述第二确定模块用于:
确定所述倒数与被除数的相乘结果;
当所述被除数与所述除数的符号相同时,将正值的所述相乘结果确定为除法运算结果;
当所述被除数与所述除数的符号不相同时,将负值的所述相乘结果确定为除法运算结果。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-5中任一项所述方法的步骤。
12.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-5中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910005299.2A CN111399803B (zh) | 2019-01-03 | 2019-01-03 | 除法运算方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910005299.2A CN111399803B (zh) | 2019-01-03 | 2019-01-03 | 除法运算方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111399803A CN111399803A (zh) | 2020-07-10 |
CN111399803B true CN111399803B (zh) | 2022-07-15 |
Family
ID=71436072
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910005299.2A Active CN111399803B (zh) | 2019-01-03 | 2019-01-03 | 除法运算方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111399803B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112181357A (zh) * | 2020-09-02 | 2021-01-05 | 大连理工大学 | 除法运算方法、装置、电子设备和介质 |
CN113254072B (zh) * | 2021-05-27 | 2023-04-07 | 上海阵量智能科技有限公司 | 数据处理器、数据处理方法、芯片、计算机设备及介质 |
CN116028013B (zh) * | 2023-02-20 | 2023-07-04 | 辰星(天津)自动化设备有限公司 | 一种fpga除法运算的优化方法、装置、除法器和介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN86107497A (zh) * | 1985-10-31 | 1987-05-27 | 通用电气公司 | 用于执行平方根操作的电路 |
US5563818A (en) * | 1994-12-12 | 1996-10-08 | International Business Machines Corporation | Method and system for performing floating-point division using selected approximation values |
CN1399229A (zh) * | 2001-07-24 | 2003-02-26 | 精工爱普生株式会社 | 图象处理器和图像处理程序,以及图象处理方法 |
CN103164185A (zh) * | 2011-12-16 | 2013-06-19 | 上海华虹集成电路有限责任公司 | 用纯组合电路实现除法计算的电路 |
CN104778027A (zh) * | 2014-01-14 | 2015-07-15 | 罗伯特·博世有限公司 | 用于计算被除数和除数的除法的结果值的方法和设备 |
CN105308555A (zh) * | 2014-02-10 | 2016-02-03 | 上海兆芯集成电路有限公司 | 具有近似计算功能单元的处理器 |
CN105302520A (zh) * | 2015-10-16 | 2016-02-03 | 北京中科汉天下电子技术有限公司 | 一种倒数运算的求解方法及系统 |
CN106959840A (zh) * | 2016-01-08 | 2017-07-18 | 瑞昱半导体股份有限公司 | 除法运算装置及其运算方法 |
CN108334305A (zh) * | 2018-01-18 | 2018-07-27 | 上海达梦数据库有限公司 | 一种除法运算方法、装置、设备和存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050289209A1 (en) * | 2004-06-29 | 2005-12-29 | Intel Corporation | Method and system of achieving integer division by invariant divisor using N-bit multiply-add operation |
CN105389157A (zh) * | 2015-10-29 | 2016-03-09 | 中国人民解放军国防科学技术大学 | 基于Goldschmidt算法的浮点除法器 |
-
2019
- 2019-01-03 CN CN201910005299.2A patent/CN111399803B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN86107497A (zh) * | 1985-10-31 | 1987-05-27 | 通用电气公司 | 用于执行平方根操作的电路 |
US5563818A (en) * | 1994-12-12 | 1996-10-08 | International Business Machines Corporation | Method and system for performing floating-point division using selected approximation values |
CN1399229A (zh) * | 2001-07-24 | 2003-02-26 | 精工爱普生株式会社 | 图象处理器和图像处理程序,以及图象处理方法 |
CN103164185A (zh) * | 2011-12-16 | 2013-06-19 | 上海华虹集成电路有限责任公司 | 用纯组合电路实现除法计算的电路 |
CN104778027A (zh) * | 2014-01-14 | 2015-07-15 | 罗伯特·博世有限公司 | 用于计算被除数和除数的除法的结果值的方法和设备 |
CN105308555A (zh) * | 2014-02-10 | 2016-02-03 | 上海兆芯集成电路有限公司 | 具有近似计算功能单元的处理器 |
CN105302520A (zh) * | 2015-10-16 | 2016-02-03 | 北京中科汉天下电子技术有限公司 | 一种倒数运算的求解方法及系统 |
CN106959840A (zh) * | 2016-01-08 | 2017-07-18 | 瑞昱半导体股份有限公司 | 除法运算装置及其运算方法 |
CN108334305A (zh) * | 2018-01-18 | 2018-07-27 | 上海达梦数据库有限公司 | 一种除法运算方法、装置、设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
AN ACCURATE LINEAR APPROXIMATION METHOD UTILIZING A BIPARTITE RECIPROCAL TABLE FOR A FLOATING POINT DIVIDER;Iljoo Choo 等;《IEEE》;20011231;第1199-1204页 * |
处理器中的浮点除法和平方根运算算法;李蓉 等;《计算机技术与发展》;20070330;第109-112页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111399803A (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111399803B (zh) | 除法运算方法、装置、存储介质及电子设备 | |
US11249726B2 (en) | Integrated circuits with modular multiplication circuitry | |
CN115934030A (zh) | 算数逻辑单元、浮点数乘法计算的方法及设备 | |
KR20080055985A (ko) | 선택가능 준정밀도를 가진 부동―소수점 프로세서 | |
KR102253096B1 (ko) | 부동 소수점 수를 정수로 변환하기 위한 전자 장치 및 시스템, 및 그것의 작동 방법 | |
US20040167956A1 (en) | Method and apparatus for executing division | |
CN111813371B (zh) | 数字信号处理的浮点除法运算方法、系统及可读介质 | |
CN110515584A (zh) | 浮点计算方法及系统 | |
CN112256235A (zh) | 除运算方法及除法器、除法装置、电子设备、存储介质 | |
CN110798230A (zh) | 一种游程检测方法、装置及电子设备 | |
CN106681691A (zh) | 基于蒙哥马利模乘的数据处理方法、模乘运算方法和装置 | |
JP2006172035A (ja) | 除算・開平演算器 | |
US20210141601A1 (en) | Digital calculation processing circuit | |
CN110784226A (zh) | 一种基于pcm压缩编码的数据处理方法及数据处理装置 | |
CN113805846A (zh) | 取模运算方法、电路、电子设备和计算机可读存储介质 | |
US9612800B2 (en) | Implementing a square root operation in a computer system | |
CN111191779B (zh) | 一种数据处理方法、装置、处理器及计算机可读存储介质 | |
CN112363687A (zh) | 一种整数取模运算方法、装置及终端设备 | |
CN113625992A (zh) | 基于除法器的任务处理方法、装置、除法器及存储介质 | |
CN114691082A (zh) | 乘法器电路、芯片、电子设备及计算机可读存储介质 | |
CN109947393B (zh) | 基于求余器的运算方法及装置 | |
CN111142840A (zh) | 基于fpga的数据计算方法和装置 | |
CN115857655B (zh) | Gpu的功耗控制方法、装置、设备、介质和程序产品 | |
US8838666B2 (en) | Divider logic circuit and implement method therefor | |
JP5305392B2 (ja) | Iqデータの二乗和ルート計算手段 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |