CN112363687A - 一种整数取模运算方法、装置及终端设备 - Google Patents
一种整数取模运算方法、装置及终端设备 Download PDFInfo
- Publication number
- CN112363687A CN112363687A CN202011359605.1A CN202011359605A CN112363687A CN 112363687 A CN112363687 A CN 112363687A CN 202011359605 A CN202011359605 A CN 202011359605A CN 112363687 A CN112363687 A CN 112363687A
- Authority
- CN
- China
- Prior art keywords
- integer
- dividend
- equal
- modulo
- modulus
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 84
- 238000004590 computer program Methods 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 abstract description 40
- 125000004122 cyclic group Chemical group 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 101100460704 Aspergillus sp. (strain MF297-2) notI gene Proteins 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 101100272279 Beauveria bassiana Beas gene Proteins 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 description 1
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 description 1
- VKYKSIONXSXAKP-UHFFFAOYSA-N hexamethylenetetramine Chemical compound C1N(C2)CN3CN1CN2C3 VKYKSIONXSXAKP-UHFFFAOYSA-N 0.000 description 1
- 101150049349 setA gene Proteins 0.000 description 1
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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
本发明实施例公开了一种整数取模运算方法、装置及存储介质,应用于计算机技术领域,可以解决现有技术中运算设备硬件计算效率较低的问题。该方法包括:将二进制形式的整数b表示为目标形式,目标形式包括:2n‑p的形式,和/或,2n‑1+p的形式,其中,n为整数b的位宽,0≤p≤2n‑2,n大于或等于1;计算整数a对目标形式的整数b取模的取模结果。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种整数取模运算方法、装 置及终端设备。
背景技术
取模运算在各个领域都有广泛应用,目前在运算设备计算整数的取模运算 时,在取模运算的实现中运用移位、比较、减法迭代的操作来实现,通常需要 的迭代次数非常多计算量较大,运算设备硬件计算效率较低。
发明内容
本发明实施例提供一种整数取模运算方法、装置及终端设备,用以解决现 有技术中运算设备硬件计算效率较低的问题。
为了解决上述技术问题,本发明实施例是这样实现的:
第一方面,提供一种整数取模运算方法,该方法包括:将二进制形式的整数b 表示为目标形式,目标形式包括:2n-p的形式,和/或,2n-1+p的形式,其中, n为整数b的位宽,0≤p≤2n-2,n大于或等于1;
计算整数a对目标形式的整数b取模的取模结果。
第二方面,提供一种整数取模运算方法,该方法包括:
将二进制形式的整数a作为被除数,将二进制形式的整数b作为除数;其中, 整数b表示为目标形式,目标形式包括:2n-p的形式,和/或,2n-1+p的形式, 0≤p≤2n-2,n大于或等于1,n为整数b的位宽;
第三方面,提供一种整数取模运算方法,该方法包括:
将二进制形式的整数a作为被除数,将二进制形式的整数b作为除数;
第四方面,提供一种运算装置,该装置包括:运算电路,用于计算整数a对 目标形式的整数b取模的取模结果;
其中,二进制形式的整数b表示为目标形式,目标形式包括:2n-p的形式, 和/或,2n-1+p的形式,其中,n为整数b的位宽,0≤p≤2n-2,n大于或等于 1。
第五方面,提供一种运算装置,该装置包括:
运算电路,用于将二进制形式的整数a作为被除数,将二进制形式的整数b作 为除数;根据整数b的位宽将被除数从最低位开始拆分为S段,得到各段表示 的整数根据各段表示的整数和整数b,计算整数a对整数b取模的取模结果;
其中,整数b表示为目标形式,目标形式包括:2n-p的形式,和/或,2n-1+p 的形式,0≤p≤2n-2,n大于或等于1,n为整数b的位宽;0≤i≤S-2。
第六方面,提供一种运算装置,该装置包括:
运算电路,用于将二进制形式的整数a作为被除数,将二进制形式的整数b作 为除数;将被除数从最低位开始拆分为S段,得到各段表示的整数根据各段 表示的整数和整数b,计算被除数的同余式根据被除数的同余式确定整 数a对整数b取模的取模结果;其中,m为整数a的位宽,0≤i≤S-2,为n或者n-1,n为整数b的位宽;整数b表示为目标形式,目标形式包括:2n-p 的形式,和/或,2n-1+p的形式,0≤p≤2n-2,n大于或等于1。
第七方面,提供一种终端设备,其特征在于,处理器、存储器及存储在存 储器上并可在处理器上运行的计算机程序,计算机程序被处理器执行时实现如 第一方面的整数取模运算方法,或者,实现如第二方面的整数取模运算方法, 或者,实现如第三方面的整数取模运算方法。
第八方面,提供一种运算装置,包括:
处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,计 算机程序被处理器执行时实现如第一方面的整数取模运算方法,或者,实现如 第二方面的整数取模运算方法,或者,实现如第三方面的整数取模运算方法。
第九方面,提供一种运算装置,包括:如第六方面、第七方面和第八方面 中的任一方面的运算电路,以及与运算电路连接的处理器;
处理器用于向运算电路配置上述整数a和整数b。
第十方面,提供一种计算机可读存储介质,其特征在于,该计算机可读存 储介质上存储计算机程序,该计算机程序被处理器执行时实现如第一方面的整 数取模运算方法,或者,实现如第二方面的整数取模运算方法,或者,实现如 第三方面的整数取模运算方法。
在本发明实施例中,将二进制形式的整数b表示为目标形式,目标形式包括: 2n-p的形式,和/或,2n-1+p的形式,其中,n为整数b的位宽,0≤p≤2n-2,n大 于或等于1;计算整数a对目标形式的整数b取模的取模结果。通过该方案,将b表 示为2的整数次幂加减尽可能小的p的形式,由于针对2的整数次幂的取模运算 易于计算,在其加减尽可能小的P的情况下,如此可以通过尽可能少的迭代次数 计算出整数a对整数b的取模结果,从而可以简化整数a对整数b的计算,提高运 算设备的硬件计算效率。
附图说明
图1为本发明实施例提供的一种整数取模运算方法流程示意图一;
图2为本发明实施例提供的一种除数b=2n-p时的被除数拆分示意图;
图3为本发明实施例提供的一种除数b=2n-1+p时的被除数拆分示意图;
图4为本发明实施例提供一种整数取模运算方法流程示意图二;
图5为本发明实施例提供一种运算装置的结构示意图一;
图6为本发明实施例提供一种运算装置的结构示意图二;
图7为本发明实施例提供的一种运算装置的结构示意图三。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部 的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳 动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明实施例中,“示例性的”或者“例如”等词用于表示作例 子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例 或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而 言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
首先对本发明实施例的相关技术内容进行介绍:
取模运算和取余运算的主要的区别在于负整数进行除法运算时商数值的舍 入方式不同。整数a对整数b的取模运算或者取余运算的结果都可以表示为 r=a-b×q,其中,q是a除以b的整数商。
取模运算和取余运算不同的是,在取余运算时,商数值会向0方向舍入; 在取模运算时,商数值会向负无穷方向舍入。如果整数a和整数b都是无符号整 数(即非负整数),则取模运算和取余运算结果相同,都等于被除数a除以除数b后 的余数,可以表示为
在取模运算的硬件电路实现中,将整数表示为二进制形式进行运算,当除 数b是2的整数次幂时,取模运算非常简单,假设b=2n,取模相当于直接取被 除数a的低n位二进制数。当除数b不是2的整数次幂时,取模运算过程比较复杂, 传统的取模方法通常采用竖式除法的方式,通过多次移位、比较和减法操作的 迭代计算,从被除数中重复地减去除数移位后的值,直到被除数小于除数为止, 得到的结果即为余数。
例如,m位无符号整数a对n位无符号整数b取模,一种做法是首先将a转换成 高n位为0,低m位为a的a′。把b转换成高n位为b,低m位为0的b′。在每次迭代 开始时,先将a′左移一位,末尾补0,然后与b′比较,是否大于b′,是则a′减去b′并且 加上1,否则进入下一次迭代,其中,迭代过程要进行m次,迭代结束后a′的高n位 即为余数。
传统的取模方法通过移位、比较和减法操作迭代计算,当被除数很大除数 很小时,需要较多的迭代次数才能得到取模结果,计算周期长,延迟较大。
一种可选的实现方式中,基于查找表的方法将取模运算的结果提前存储, 以使得可以快速求出结果,但是需要用到较多的资源存储对应的余数表。
本发明实施例提供一种整数取模运算方法,可以减少取模运算中的迭代次 数,快速高效的计算得到取模结果,从而可以减少计算量,提高运算设备硬件 计算效率。
进一步的,本发明实施例提供的整数取模运算方法,无需占用大量资源存 储对应的余数表,可以节省存储资源。
本发明实施例提供的整数取模运算方法可以应用在各个领域中,涉及整数 取模运算的场景中。
在通信领域中,5G NR系统的物理层参数计算中,存在大量整数取模的运 算。
示例性的,在新空口(New Radio,NR)系统物理上行链路控制信道(PhysicalUplink Control Channel,PUCCH)的数据和解调参考信号生成时,会用到低峰 值均值比序列(Low Peak to Average Power Ratio sequence,Low-PAPR sequence), Low-PAPRsequence通常包括有多个基序列,这些基序列可以被分为30个组, 其中,每个分组中可以包含1至2个基序列,在计算基序列组号u时需要对组数 30取模,其取模运算时的具体公式如下公式1所示:
公式1:u=(fgh+fss)mod 30。
其中,fgh和fss是与序列组跳方式(pucch-Group Hopping)相关的计算量, 可通过组跳序列号(hopping ID)等参数计算得到。
在计算基序列组号u时,可以将(fgh+fss)作为被除数,30作为除数进行取模 运算,计算得到的取模结果为基序列组号u,采用本发明实施例中的取模运算方 法,可以将30的二进制数表示为下述目标形式,并将(fgh+fss)对应的二进制数 按照被除数的位宽进行分段,如此,在取模运算过程中可以通过较少的迭代次 数,计算出取模结果,可以减少计算量,并提高运算设备的硬件计算效率。
示例性的,Low-PAPR定义为在基序列的基础上进行循环移位αl,获取该循 环移位值αl也需要进行取模运算,其取模运算时的具体公式如下公式2所示:
在计算循环移位值αl时,可以将作为被除数,作为除数进行取模运算,并根据计算得到的取模结果,结合计算得到循 环移位值αl,其中采用本发明实施例中的取模运算方法,可以将的二进制数 (可以为12)表示为下述目标形式,并将对应的二 进制数按照被除数的位宽进行分段,如此,在取模运算过程中可以通过较少的 迭代次数,计算出取模结果,可以减少计算量,并提高运算设备的硬件计算效 率。
本发明实施例提供的整数取模运算方法,可以由运算装置执行,或者由运 算装置中的功能模块或者功能实体执行。
其中,上述运算装置可以为计算机、芯片、平板电脑、笔记本电脑、超级 移动个人计算机(ultra-mobile personal computer,UMPC)、手持计算机、上 网本、个人数字助理(personal digital assistant,PDA)、穿戴式终端设备 等,本申请实施例对运算装置的具体形式不做特殊限制。
上述功能实体可以为运算装置中用于实现整数取模运算方法的处理器,或 者,可以为运算装置中用于实现整数取模运算方法的硬件电路(本发明实施例 中称为运算电路)。
如图1所示,本发明实施例提供一种整数取模运算方法,该方法包括:
101、将二进制形式的整数a作为被除数,将目标形式的整数b作为除数。
由于取模运算相当于进行除法运算,因此在计算a modb时,可以将整数a作 为被除数,整数b作为除数。
102、将二进制形式的整数b表示为目标形式。
其中,目标形式包括:2n-p的形式,和/或,2n-1+p的形式,其中,n为 整数b的位宽,0≤p≤2n-2,n大于或等于1。
可选的,将二进制形式的整数b表示为目标形式可以包括以下几种实现方式:
实现方式1:将整数b表示为b=2n-p,0≤p<2n-1。
示例性的,假设整数b为17,其转换为二进制数是10001,可以将其表示为 b=25-15。
实现方式2:将整数b表示为b=2n-1+p,0≤p<2n-1。
示例性的,假设整数b为17,其转换为二进制数是10001,可以将其表示为 b=24+1。
实现方式3:
(1)整数b的次高位为1时,整数b表示为b=2n-p,1≤p≤2n-2;
示例性的,假设整数b为24,其转换为二进制数是11000,11000中次高位 为1,可以将其表示为b=25-8。
(2)整数b的次高位为0时,整数b表示为b=2n-1+p,0≤p<2n-2。
示例性的,假设整数b为17,其转换为二进制数是10001,10001中次高位 为0,可以将其表示为b=24+1。
示例性的,除数b的位宽是n,则b可以表示为如下二进制形式
b=[bn-1,bn-2,…,b0]
当位宽n=1时,有取模意义的b只能是1,而对其取模结果恒为0。因此本 发明实施例中主要考虑n≥2的情况。
第一种情况:当除数b的次高位bn-2=1时,将b表示为:
第二种情况:当除数b的次高位bn-2=0时,将b表示为:
针对上述第一种情况,当bn-2=1时,b=2n-p,1≤p≤2n-2,可以得到:
2n mod b=p。
针对上述第二种情况,当bn-2=0时,b=2n-1+p,0≤p<2n-2,根据同 余关系可知:
2n-1≡-p(mod b)。
无符号整数a对整数b取模,相当于被除数a除以除数b的余数。假设所有可能 的被除数a的最大位宽是m,则a可以表示为如下二进制形式:
a=[am-1,am-2,…,a0]
针对上述第一种情况:
将二进制形式的被除数a以位宽n为一段从最低位开始拆分为连续的S段。
参照图2所示的才分后的被除数,拆分后各段的二进制形式可以表示为:
根据取模运算的性质可得:
根据同余关系可以表示为:
其中,权值可以是pi或者pi mod b。
可选的,在权值为pi时没有取模操作,可以通过pi=pi-1·p在线迭代计算, 这种计算方法收敛速度相对较慢。
可选的,在权值为pi mod b时,可以预先计算存储取模结果pi mod b,但收 敛速度相对更快。
可以求出a的同余式包括:
针对上述第二种情况:
将二进制形式的被除数a以位宽n-1为一段从最低位开始拆分为连续的S段。
参照图3所示的才分后的被除数,拆分后各段的二进制形式可以表示为:
根据取模运算的性质可得
根据同余关系可以表示为:
从上式可见,a对b的取模相当于拆分后各数的加权和对b取模。其中权值可 以是(-1)i·pi或者(-1)i·(pi mod b),权值绝对值部分pi或者(pi mod b)的计算 与前文第一种情况中权值的计算类似,此处不再赘述,不同的是在加权过程中 还需要额外计算符号项(-1)i。
针对第一种情况:
可选的,当b=2n-2k,即p可以表示为p=2k,0≤k≤n-2时,pi mod b的 计算可以进一步简化:
由2n mod b=p=2k,可得2n≡2k(mod b),则有
2n+j(n-k)≡2k(mod b),j=0,1,2,…
从而可以推导出:
此时,计算加权和过程中的乘法操作简化为移位操作,权值的计算简化为幂 指数的计算,从而可以进一步的简化计算,提高运算设备的计算效率。
如果所有权值pi都小于2n,即(S-1)k<n时,可以直接计算幂指数ik。
如果某些权值pi大于或等于2n,即(S-1)k≥n时,可以预先计算存储幂指数 ((ik-n)mod(n-k))+k。
其中,当n-k是2的整数次幂时,由于取模运算非常简单,等效于取ik-n相 应的二进制位,也可以直接在线计算幂指数而无需预先计算存储。
针对第二种情况:
其中,为非负数时符号值取1,为负数时符号值取-1。而符号项在迭代开 始时初始化为第j次迭代的符号项s(j)通过上次迭代的符号项s(j-1)乘以 当前的符号值求得。假设经过L次迭代后,的值(每次迭代后已更新为所 以此时)小于或等于2b,则迭代过程结束。
可选的,当b=2n-1+2k,即p可以表示为p=2k,0≤k<n-2时,pi mod b 的计算可以进一步简化:
由2n-1 mod b=-p=-2k可得2n-1≡-2k(mod b),则有
2n-1+j(n-1-k)≡(-1)j+1·2k(mod b),j=0,1,2,…
从而可以推导出:
此时,计算加权和过程中的乘法操作简化为移位操作,权值的计算简化为幂 指数和符号项的计算,从而可以进一步的简化计算,提高运算设备的计算效率。
如果所有权值pi都小于2n-1,即(S-1)k<n-1,可以直接计算幂指数ik。
其中,当n-1-k是2的整数次幂时,由于取模和求商运算等效于取 ik-n+1相应的二进制位,也可以直接在线计算幂指数和符号项而无需预先计 算存储。
综合上述对本发明实施例中的整数取模运算方法的描述,可以将上述取模运 算步骤总结合为以下几个步骤:
401、取除数b的次高位bn-2。
402、判断是否bn-2=1。
如果bn-2=1,将b表示为b=2n-p,1≤p≤2n-2,令s=1,即 执行下述403;如果bn-2=0,将b表示为b=2n-1+p,0≤p<2n-2,令 s=-1,即执行下述404。其中,n表示b的位宽,s表示符号项。
其中,权值为sipi或者si·(pi mod b)。
412、j=j+1。
416、结果为0。
本发明实施例提供的整数取模运算方法,可以根据除数b的次高位bn-2的取 值情况,将其表示为的形式,使得p的取值尽可能小。具体地,当bn-2=1时, 将b表示为b=2n-p,1≤p≤2n-2;当bn-2=0时,将b表示为b=2n-1+p, 0≤p<2n-2。
进一步的,将二进制形式的被除数从最低位开始拆分为连续的多段,将拆分 后各段表示的整数取模后加权相加,得到被除数的同余式并作为新的被除数, 通过迭代方式计算最终取模结果。
本发明实施例提供的整数取模运算方法,存在以下优点:
(1)可以快速计算取模运算结果,所需迭代次数较少。
(2)需要的存储资源小,在除数满足一定要求时甚至无需存储资源。
可选的,在被除数a和除数b均为无符号整数时,根据上述101至105可以直 接计算得到a mod b的取模结果。当被除数a和除数b为有符号整数时,可以先求 被除数a和除数b的绝对值,按照上述101至105计算出|a|mod|b|之后,可以根 据取模运算的定义和取模运算的性质对结果进行调整,以 得到取模结果a mod b,具体方法如下表1所示。
表1
可选的,在判断其他取模运算是否落入本发明实施例所保护技术方案的范 围内时,对待检测的运算电路或程序配置上述除数b和被除数a,其中被除数a可 以遍历所有取值也可以从各集合中随机抽取足够多的部分值,并分别记录从开 始计算到输出结果的延时。可以选定某一除数b,以及被除数a的最大位宽m,按 照本方案遍历计算被除数所有可能取值(即0~2m-1)对除数的取模结果,并 记录每一被除数对应的迭代次数,按迭代次数对被除数进行分组。例如,迭代 次数为1的被除数集合为S1,迭代次数为2的被除数集合为S2,以此类推。
如果迭代次数对应了计算延时,同一集合中的被除数的取模运算延时应该 相同,而不同集合中的被除数的取模运算延时不同,并且集合Sk中的被除数的 取模运算延时应该大于集合Sk-1中的被除数的取模运算延时,那么与本方案中取 模运算对应的延时与迭代次数之间的关系一致,如果其他取模运算各被除数取 模运算对应的延时与按本方案计算的迭代次数的关系一致,则采用了本方案。
本发明实施例提供运算装置,第一种可选的实现方式:
如图5所示,本发明实施例提供一种运算装置,该装置包括:
运算电路501,用于计算整数a对目标形式的整数b取模的取模结果;
其中,二进制形式的整数b表示为目标形式,目标形式包括:2n-p的形式, 和/或,2n-1+p的形式,其中,n为整数b的位宽,0≤p≤2n-2,n大于或等于 1。
可选的,运算电路501,具体用于将整数b表示为b=2n-p,0≤p<2n-1。
可选的,运算电路501,具体用于将整数b表示为b=2n-1+p, 0≤p<2n-1。
可选的,运算电路501,具体用于整数b的次高位为1时,整数b表示为 b=2n-p,1≤p≤2n-2。
可选的,运算电路501,具体用于整数b的次高位为0时,整数b表示为 b=2n-1+p,0≤p<2n-2。
可选的,运算电路501,具体用于将二进制形式的整数a作为被除数;
可选的,大于0,运算电路501,具体用于若则确定取模结果为0; 若则确定取模结果为若则确定取模结果为若将作为被除数,并执行将被除数从最低位开始拆分为S段的步骤,直到 被除数的同余式小于或等于2b,以得到取模结果。
可选的,小于0,运算电路501,具体用于若则确定取模结 果为0;若则确定取模结果为若则确定取 模结果为若将作为被除数,并执行将被除数从最低位开 始拆分为S段的步骤,直到被除数的同余式小于或等于2b,以得到取模结果。
可选的,若整数b表示为b=2n-p,1≤p≤2n-2,则权值为pi或者pi mod b。
可选的,若整数b表示为b=2n-1+p,0≤p<2n-2,则权值为(-1)i·pi或 者(-1)i·(pimod b)。
第二种可选的实现方式:
本发明实施例提供还提供一种运算装置,如图5所示,该装置包括:
运算电路501,用于将二进制形式的整数a作为被除数,将二进制形式的 整数b作为除数;根据整数b的位宽将被除数从最低位开始拆分为S段,得到各 段表示的整数根据各段表示的整数和整数b,计算整数a对整数b取模的取 模结果;
其中,整数b表示为目标形式,目标形式包括:2n-p的形式,和/或,2n-1+p 的形式,0≤p≤2n-2,n大于或等于1,n为整数b的位宽;0≤i≤S-2。
第三种可选的实现方式:
本发明实施例提供还提供一种运算装置,如图5所示,该装置包括:
运算电路501,用于将二进制形式的整数a作为被除数,将二进制形式的 整数b作为除数;将被除数从最低位开始拆分为S段,得到各段表示的整数根据各段表示的整数和整数b,计算被除数的同余式根据被除数的同余式确定整数a对整数b取模的取模结果;其中,m为整数a的位宽, 0≤i≤S-2,为n或者n-1,n为整数b的位宽;整数b表示为目标形式,目 标形式包括:2n-p的形式,和/或,2n-1+p的形式,其中,n为整数b的位宽, 0≤p≤2n-2,n大于或等于1。
如图6所示,本发明实施例提供一种运算装置,包括:运算电路601,以及 与运算电601连接的处理器602。
本发明实施例中,处理器602用于向运算电路601配置上述整数a和整数b, 运算电路601用于根据上述第一种可选的实现方式、第二种可选的实现方式和 第三种可选的实现方式中的任一种实现方式计算上述整数a和整数b的取模结果。
该运算装置还包括:与运算电路601连接的寄存器603。
寄存器603,用于触发运算电路运行,运算电路601用于在寄存器603的触 发下,根据上述第一种可选的实现方式、第二种可选的实现方式和第三种可选 的实现方式中的任一种实现方式计算上述整数a和整数b的取模结果。
其中,上述处理器602可以将上述整数a和整数b输入至运算电路601的输 入端,运算电路601计算得到上述整数a和整数b的取模结果后,从运算电路601 的输出端输出该取模结果。
如图7所示,本发明实施例提供一种运算装置,包括:处理器701、存储器 702及存储在存储器702上并可在处理器701上运行的计算机程序,计算机程序 被处理器701执行时,实现本发明实施例中的整数取模运算方法。
本发明实施例还提供一种计算机可读存储介质,包括:计算机可读存储介 质上存储计算机程序,计算机程序被处理器执行时实现本发明实施例中的整数 取模运算方法。
本发明实施例还提供一种计算机程序产品,其中,当计算机程序产品在计 算机上运行时,使得计算机执行如以上各方法实施例中的方法的部分或全部步 骤。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有 关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个 说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施 例。此外,这些特定特征、结构或特性可以以任意适合的方式结合在一个或多 个实施例中。本领域技术人员也应该知悉,说明书中所描述的实施例均属于可 选实施例,所涉及的动作和模块并不一定是本发明所必须的。
本发明实施例提供的终端设备能够实现上述方法实施例中所示的各个过程, 为避免重复,此处不再赘述。
在本发明的各种实施例中,应理解,上述各过程的序号的大小并不意味着 执行顺序的必然先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应 对本发明实施例的实施过程构成任何限定。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为 单元显示的部件可以是或者也可以不是物单元,即可位于一个地方,或者也可 以分布到多个网络单元上。可根据实际的需要选择其中的部分或全部单元来实 现本发明实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以集成在一个处理单元中,也 可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。 上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式 实现。
上述集成的单元若以软件功能单元的形式实现并作为独立的产品销售或使 用时,可以存储在一个计算机可获取的存储器中。基于这样的理解,本发明的 技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或者 部分,可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器 中,包括若干请求用以使得一台计算机设备(可以为个人计算机、服务器或者 网络设备等,具体可以是计算机设备中的处理器)执行本发明的各个实施例上 述方法的部分或全部步骤。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤 是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存 储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器 (Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、 或者能够用于携带或存储数据的计算机可读的任何其他介质。
Claims (21)
1.一种整数取模运算方法,其特征在于,包括:
将二进制形式的整数b表示为目标形式,所述目标形式包括:2n-p的形式,和/或,2n-1+p的形式,其中,n为所述整数b的位宽,0≤p≤2n-2,n大于或等于1;
计算整数a对所述目标形式的所述整数b取模的取模结果。
2.根据权利要求1所述的方法,其特征在于,所述将二进制形式的整数b表示为目标形式,包括:
将所述整数b表示为b=2n-p,0≤p<2n-1。
3.根据权利要求1所述的方法,其特征在于,所述将二进制形式的整数b表示为目标形式,包括:
将所述整数b表示为b=2n-1+p,0≤p<2n-1。
4.根据权利要求1所述的方法,其特征在于,所述将二进制形式的整数b表示为目标形式,包括:
所述整数b的次高位为1时,所述整数b表示为b=2n-p,1≤p≤2n-2;
所述整数b的次高位为0时,所述整数b表示为b=2n-1+p,0≤p<2n-2。
10.根据权利要求9所述的方法,其特征在于,
若所述整数b表示为b=2n-p,1≤p≤2n-2,则所述权值为pi或者pi mod b;
或者,
若所述整数b表示为b=2n-1+p,0≤p<2n-2,则所述权值为(-1)i·pi或者(-1)i·(pi modb)。
15.一种运算装置,其特征在于,包括:
运算电路,用于计算整数a对目标形式的整数b取模的取模结果;
其中,二进制形式的所述整数b表示为目标形式,所述目标形式包括:2n-p的形式,和/或,2n-1+p的形式,其中,n为所述整数b的位宽,0≤p≤2n-2,n大于或等于1。
18.一种运算装置,包括:如权利要求15至17任一项所述的运算电路,以及与所述运算电路连接的处理器;
所述处理器用于向运算电路配置上述整数a和整数b。
19.根据权利要求18所述的运算装置,所述运算装置还包括:与所述运算电路连接的寄存器;
所述寄存器,用于触发所述运算电路运行,所述运算电路用于在所述寄存器的触发下,计算上述整数a和整数b的取模结果。
20.一种运算装置,其特征在于,包括:
处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至12中任一项所述的整数取模运算方法,或者,实现如权利要求13所述的整数取模运算方法,或者,实现如权利要求14所述的整数取模运算方法。
21.一种计算机可读存储介质,其特征在于,包括:所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至12中任一项所述的整数取模运算方法,或者,实现如权利要求13所述的整数取模运算方法,或者,实现如权利要求14所述的整数取模运算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011359605.1A CN112363687A (zh) | 2020-11-27 | 2020-11-27 | 一种整数取模运算方法、装置及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011359605.1A CN112363687A (zh) | 2020-11-27 | 2020-11-27 | 一种整数取模运算方法、装置及终端设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112363687A true CN112363687A (zh) | 2021-02-12 |
Family
ID=74535438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011359605.1A Pending CN112363687A (zh) | 2020-11-27 | 2020-11-27 | 一种整数取模运算方法、装置及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112363687A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117742664A (zh) * | 2024-02-19 | 2024-03-22 | 粤港澳大湾区数字经济研究院(福田) | 基于gpu的求模方法、装置、设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030046672A1 (en) * | 2001-08-31 | 2003-03-06 | Fujitsu Limited | Development system of microprocessor for application program including integer division or integer remainder operations |
US7197526B1 (en) * | 1999-05-28 | 2007-03-27 | Lucent Technologies Inc. | Method and apparatus for calculating the remainder of a modulo division |
CN101021777A (zh) * | 2006-07-07 | 2007-08-22 | 开曼群岛威睿电通股份有限公司 | 基于除数(2n-1)的有效求模操作运算 |
US20150301800A1 (en) * | 2014-04-22 | 2015-10-22 | Dialog Semiconductor Gmbh | Modulo9 and Modulo7 Operation on Unsigned Binary Numbers |
KR20170133787A (ko) * | 2016-05-26 | 2017-12-06 | 한국전자통신연구원 | 3으로 나누는 이진 연산 장치 및 방법 |
CN107766031A (zh) * | 2017-11-14 | 2018-03-06 | 京东方科技集团股份有限公司 | 分段式除法器、分段式除法运算方法、以及电子设备 |
-
2020
- 2020-11-27 CN CN202011359605.1A patent/CN112363687A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7197526B1 (en) * | 1999-05-28 | 2007-03-27 | Lucent Technologies Inc. | Method and apparatus for calculating the remainder of a modulo division |
US20030046672A1 (en) * | 2001-08-31 | 2003-03-06 | Fujitsu Limited | Development system of microprocessor for application program including integer division or integer remainder operations |
CN101021777A (zh) * | 2006-07-07 | 2007-08-22 | 开曼群岛威睿电通股份有限公司 | 基于除数(2n-1)的有效求模操作运算 |
US20150301800A1 (en) * | 2014-04-22 | 2015-10-22 | Dialog Semiconductor Gmbh | Modulo9 and Modulo7 Operation on Unsigned Binary Numbers |
KR20170133787A (ko) * | 2016-05-26 | 2017-12-06 | 한국전자통신연구원 | 3으로 나누는 이진 연산 장치 및 방법 |
CN107766031A (zh) * | 2017-11-14 | 2018-03-06 | 京东方科技集团股份有限公司 | 分段式除法器、分段式除法运算方法、以及电子设备 |
Non-Patent Citations (1)
Title |
---|
王国才, 施荣华: "利用高位信息的快速模运算算法", 计算技术与自动化, no. 03, pages 26 - 29 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117742664A (zh) * | 2024-02-19 | 2024-03-22 | 粤港澳大湾区数字经济研究院(福田) | 基于gpu的求模方法、装置、设备及介质 |
CN117742664B (zh) * | 2024-02-19 | 2024-07-19 | 粤港澳大湾区数字经济研究院(福田) | 基于gpu的求模方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100756137B1 (ko) | 제산 및 제곱근 연산 유닛 | |
US10877733B2 (en) | Segment divider, segment division operation method, and electronic device | |
US9928037B2 (en) | Modulo calculation using polynomials | |
US20200117426A1 (en) | Efficient modulo calculation | |
JP2003288013A (ja) | 楕円曲線演算装置及び楕円曲線演算方法 | |
CN111813372B (zh) | 一种高精度低时延实现32位整数除法的方法及装置 | |
US20190294412A1 (en) | Stochastic rounding logic | |
CN112363687A (zh) | 一种整数取模运算方法、装置及终端设备 | |
US8868633B2 (en) | Method and circuitry for square root determination | |
JP2001222410A (ja) | 除算器 | |
CN108809323B (zh) | 循环冗余校验码的生成方法和装置 | |
CN117134917A (zh) | 一种用于椭圆曲线加密的快速模运算方法和装置 | |
CN113254072B (zh) | 数据处理器、数据处理方法、芯片、计算机设备及介质 | |
CN114385112A (zh) | 处理模数乘法的装置及方法 | |
CN113805846A (zh) | 取模运算方法、电路、电子设备和计算机可读存储介质 | |
RU2559771C2 (ru) | Устройство для основного деления модулярных чисел | |
Ananda Mohan | Reverse conversion using core function, CRT and mixed radix conversion | |
CN113885836A (zh) | 取模运算方法、装置、电子设备及计算机可读存储介质 | |
US10353671B2 (en) | Circuitry and method for performing division | |
Bello et al. | A MRC based RNS to binary converter using the moduli set {22n+ 1-1, 2n-1, 22n-1} | |
KR101626743B1 (ko) | 유한체상의 몽고메리 알고리즘을 이용한 곱셉기 및 곱셈 방법 | |
KR100564764B1 (ko) | 유한체 다항식 곱셈 장치 및 그 방법 | |
CN116822537A (zh) | 用于随机计算的多加数加法电路 | |
US7266578B2 (en) | Method and hardware for computing reciprocal square root and program for the same | |
JP2790327B2 (ja) | 剰余乗算回路および剰余乗算方法 |
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 |