CN112363687A - 一种整数取模运算方法、装置及终端设备 - Google Patents

一种整数取模运算方法、装置及终端设备 Download PDF

Info

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
Application number
CN202011359605.1A
Other languages
English (en)
Inventor
刘君
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202011359605.1A priority Critical patent/CN112363687A/zh
Publication of CN112363687A publication Critical patent/CN112363687A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods 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的位宽;
根据整数b的位宽将被除数从最低位开始拆分为S段,得到各段表示的整数
Figure BDA0002803595560000011
其中,0≤i≤S-2;
根据各段表示的整数
Figure BDA0002803595560000012
和整数b,计算整数a对整数b取模的取模结果。
第三方面,提供一种整数取模运算方法,该方法包括:
将二进制形式的整数a作为被除数,将二进制形式的整数b作为除数;
将被除数从最低位开始拆分为S段,得到各段表示的整数
Figure BDA0002803595560000013
其中,
Figure BDA0002803595560000014
为整数a的位宽,0≤i≤S-2,其中,
Figure BDA0002803595560000015
为n或者n-1,n为整数b的位宽;
根据各段表示的整数
Figure BDA0002803595560000016
和整数b,计算被除数的同余式
Figure BDA0002803595560000017
其中,整数b表示 为目标形式,目标形式包括:2n-p的形式,和/或,2n-1+p的形式,其中,0≤p≤2n-2,n大于或等于1;
根据被除数的同余式
Figure BDA0002803595560000021
确定整数a对整数b取模的取模结果。
第四方面,提供一种运算装置,该装置包括:运算电路,用于计算整数a对 目标形式的整数b取模的取模结果;
其中,二进制形式的整数b表示为目标形式,目标形式包括:2n-p的形式, 和/或,2n-1+p的形式,其中,n为整数b的位宽,0≤p≤2n-2,n大于或等于 1。
第五方面,提供一种运算装置,该装置包括:
运算电路,用于将二进制形式的整数a作为被除数,将二进制形式的整数b作 为除数;根据整数b的位宽将被除数从最低位开始拆分为S段,得到各段表示 的整数
Figure BDA0002803595560000022
根据各段表示的整数
Figure BDA0002803595560000023
和整数b,计算整数a对整数b取模的取模结果;
其中,整数b表示为目标形式,目标形式包括:2n-p的形式,和/或,2n-1+p 的形式,0≤p≤2n-2,n大于或等于1,n为整数b的位宽;0≤i≤S-2。
第六方面,提供一种运算装置,该装置包括:
运算电路,用于将二进制形式的整数a作为被除数,将二进制形式的整数b作 为除数;将被除数从最低位开始拆分为S段,得到各段表示的整数
Figure BDA0002803595560000024
根据各段 表示的整数
Figure BDA0002803595560000025
和整数b,计算被除数的同余式
Figure BDA0002803595560000026
根据被除数的同余式
Figure BDA0002803595560000027
确定整 数a对整数b取模的取模结果;其中,
Figure BDA0002803595560000028
m为整数a的位宽,0≤i≤S-2,
Figure BDA0002803595560000029
为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后 的余数,可以表示为
Figure BDA0002803595560000041
在取模运算的硬件电路实现中,将整数表示为二进制形式进行运算,当除 数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所示:
公式2:
Figure BDA0002803595560000051
其中,m0和mcs是与PUCCH格式相关的参数,
Figure BDA0002803595560000052
是与组跳序列 号、时隙序号和符号序号等相关的函数,
Figure BDA0002803595560000053
为每个资源块中的子载波个数,可选的,
Figure BDA0002803595560000054
在计算循环移位值αl时,可以将
Figure BDA0002803595560000055
作为被除数,
Figure BDA0002803595560000056
作为除数进行取模运算,并根据计算得到的取模结果,结合
Figure BDA0002803595560000057
计算得到循 环移位值αl,其中采用本发明实施例中的取模运算方法,可以将
Figure BDA0002803595560000058
的二进制数 (可以为12)表示为下述目标形式,并将
Figure BDA0002803595560000059
对应的二 进制数按照被除数的位宽进行分段,如此,在取模运算过程中可以通过较少的 迭代次数,计算出取模结果,可以减少计算量,并提高运算设备的硬件计算效 率。
本发明实施例提供的整数取模运算方法,可以由运算装置执行,或者由运 算装置中的功能模块或者功能实体执行。
其中,上述运算装置可以为计算机、芯片、平板电脑、笔记本电脑、超级 移动个人计算机(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]
满足
Figure BDA0002803595560000061
并且最高位bn-1=1,其他位bi∈{0,1}。
当位宽n=1时,有取模意义的b只能是1,而对其取模结果恒为0。因此本 发明实施例中主要考虑n≥2的情况。
采用如下方法将除数b表示为
Figure BDA0002803595560000062
的形式,并且使得p的取值尽可能小,其 中,
Figure BDA0002803595560000063
为n或者n-1。
第一种情况:当除数b的次高位bn-2=1时,将b表示为:
b=2n-p,1≤p≤2n-2,其中,
Figure BDA0002803595560000064
为n;
第二种情况:当除数b的次高位bn-2=0时,将b表示为:
b=2n-1+p,0≤p<2n-2,其中,
Figure BDA0002803595560000065
为n-1。
针对上述第一种情况,当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)。
103、将被除数从最低位开始拆分为S段,得到各段表示的整数
Figure BDA0002803595560000066
104、将各段表示的整数
Figure BDA0002803595560000067
和整数b,计算整数a的同余式
Figure BDA0002803595560000068
其中,
Figure BDA0002803595560000071
m为a的位宽,0≤i≤S-2,其中,
Figure BDA0002803595560000072
为n或者n-1。
可选的,可以将各段表示的整数
Figure BDA0002803595560000073
对整数b取模,得到各段表示的整数
Figure BDA0002803595560000074
对 应的取模结果,然后将各段表示的整数
Figure BDA0002803595560000075
对应的取模结果,根据权值进行加权运 算,得到被除数的同余式
Figure BDA0002803595560000076
其中,权值为
Figure BDA0002803595560000077
或者
Figure BDA0002803595560000078
其中,
Figure BDA0002803595560000079
为1或-1。
无符号整数a对整数b取模,相当于被除数a除以除数b的余数。假设所有可能 的被除数a的最大位宽是m,则a可以表示为如下二进制形式:
a=[am-1,am-2,…,a0]
满足
Figure BDA00028035955600000710
针对上述第一种情况:
将二进制形式的被除数a以位宽n为一段从最低位开始拆分为连续的S段。
可选的,
Figure BDA00028035955600000711
段,其中最高位所在一段的位数等于m-(S-1)n,其余各 段的位数等于n,被除数拆分后的示意图如图2所示。
参照图2所示的才分后的被除数,拆分后各段的二进制形式可以表示为:
Figure BDA00028035955600000712
Figure BDA00028035955600000713
被除数a可以通过各段表示的整数
Figure BDA00028035955600000714
计算得到:
Figure BDA00028035955600000715
根据取模运算的性质可得:
Figure BDA00028035955600000716
Figure BDA0002803595560000081
根据同余关系可以表示为:
Figure BDA0002803595560000082
从上式可见,a对b的取模相当于拆分后各数
Figure BDA0002803595560000083
对b取模后的加权和再对b取模。
其中,权值可以是pi或者pi mod b。
可选的,在权值为pi时没有取模操作,可以通过pi=pi-1·p在线迭代计算, 这种计算方法收敛速度相对较慢。
可选的,在权值为pi mod b时,可以预先计算存储取模结果pi mod b,但收 敛速度相对更快。
被除数拆分后各数
Figure BDA0002803595560000084
对b的取模计算比较简单,由于所有
Figure BDA0002803595560000085
的可能取值的位宽 都不超过除数b的位宽n,所以
Figure BDA0002803595560000086
可得:
Figure BDA0002803595560000087
可以求出a的同余式包括:
Figure BDA0002803595560000088
Figure BDA0002803595560000089
针对上述第二种情况:
将二进制形式的被除数a以位宽n-1为一段从最低位开始拆分为连续的S段。
可选的,
Figure BDA00028035955600000810
段,其中最高位所在一段的位数等于m-(S-1)(n-1), 其余各段的位数等于n-1,被除数拆分后的示意图如图3所示。
参照图3所示的才分后的被除数,拆分后各段的二进制形式可以表示为:
Figure BDA0002803595560000091
Figure BDA0002803595560000092
被除数a可以通过各段表示的整数
Figure BDA0002803595560000093
计算得到:
Figure BDA0002803595560000094
由于所有
Figure BDA0002803595560000095
的可能取值的位宽都不超过n-1,所以
Figure BDA0002803595560000096
可得
Figure BDA0002803595560000097
根据取模运算的性质可得
Figure BDA0002803595560000098
根据同余关系可以表示为:
Figure BDA0002803595560000099
从上式可见,a对b的取模相当于拆分后各数
Figure BDA00028035955600000910
的加权和对b取模。其中权值可 以是(-1)i·pi或者(-1)i·(pi mod b),权值绝对值部分pi或者(pi mod b)的计算 与前文第一种情况中权值的计算类似,此处不再赘述,不同的是在加权过程中 还需要额外计算符号项(-1)i
求出a的同余式
Figure BDA0002803595560000101
Figure BDA0002803595560000102
105、根据被除数的同余式
Figure BDA0002803595560000103
确定整数a对整数b取模的取模结果。
针对第一种情况:
Figure BDA0002803595560000104
大于0,根据被除数的同余式
Figure BDA0002803595560000105
确定整数a对整数b取模的取模结果,包括:
Figure BDA0002803595560000106
则确定取模结果为0;
Figure BDA0002803595560000107
则确定取模结果为
Figure BDA0002803595560000108
Figure BDA0002803595560000109
则确定取模结果为
Figure BDA00028035955600001010
Figure BDA00028035955600001011
Figure BDA00028035955600001012
作为被除数,并执行将被除数从最低位开始拆分为S段的步骤, 直到被除数的同余式小于或等于2b,以得到取模结果。
示例性的,在上述104中求出a的同余式
Figure BDA00028035955600001013
Figure BDA00028035955600001014
的情况下:如果
Figure BDA00028035955600001015
大于2b,可以将
Figure BDA00028035955600001016
作为新的被除 数a,按103和104的同样方法进行下一次迭代计算,直到结果小于或等于2b为 止。
迭代结束后,如果
Figure BDA00028035955600001017
则最终取模结果为0;
如果
Figure BDA00028035955600001018
则最终取模结果为
Figure BDA00028035955600001019
如果
Figure BDA00028035955600001020
则最终取模结果为
Figure BDA00028035955600001021
可选的,当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,…
从而可以推导出:
Figure BDA00028035955600001022
此时,计算加权和过程中的乘法操作简化为移位操作,权值的计算简化为幂 指数的计算,从而可以进一步的简化计算,提高运算设备的计算效率。
如果所有权值pi都小于2n,即(S-1)k<n时,可以直接计算幂指数ik。
如果某些权值pi大于或等于2n,即(S-1)k≥n时,可以预先计算存储幂指数 ((ik-n)mod(n-k))+k。
其中,当n-k是2的整数次幂时,由于取模运算非常简单,等效于取ik-n相 应的二进制位,也可以直接在线计算幂指数而无需预先计算存储。
针对第二种情况:
Figure BDA0002803595560000111
大于0,则根据被除数的同余式
Figure BDA0002803595560000112
确定整数a对整数b取模的取模结果, 包括:
Figure BDA0002803595560000113
则确定取模结果为0;
Figure BDA0002803595560000114
则确定取模结果为
Figure BDA0002803595560000115
Figure BDA0002803595560000116
则确定取模结果为
Figure BDA0002803595560000117
Figure BDA0002803595560000118
Figure BDA0002803595560000119
作为被除数,并执行将被除数从最低位开始拆分为S段的步骤, 直到被除数的同余式小于或等于2b,以得到取模结果。
Figure BDA00028035955600001110
小于0,则根据被除数的同余式
Figure BDA00028035955600001111
确定整数a对整数b取模的取模结果, 包括:
Figure BDA00028035955600001112
则确定取模结果为0;
Figure BDA00028035955600001113
则确定取模结果为
Figure BDA00028035955600001114
Figure BDA00028035955600001115
则确定取模结果为
Figure BDA00028035955600001116
Figure BDA00028035955600001117
Figure BDA00028035955600001118
作为被除数,并执行将被除数从最低位开始拆分 为S段的步骤,直到被除数的同余式小于或等于2b,以得到取模结果。
示例性的,在上述104中求出a的同余式
Figure BDA00028035955600001119
Figure BDA00028035955600001120
Figure BDA00028035955600001121
的情况下:
如果
Figure BDA00028035955600001122
的绝对值大于2b,则可以将其绝对值
Figure BDA00028035955600001123
作为新的被除数a,按同样方法 进行下一次迭代计算,并同时利用
Figure BDA00028035955600001124
的符号值更新符号项
Figure BDA00028035955600001125
其中,
Figure BDA00028035955600001126
为非负数时符号值取1,为负数时符号值取-1。而符号项
Figure BDA00028035955600001127
在迭代开 始时初始化为
Figure BDA00028035955600001128
第j次迭代的符号项s(j)通过上次迭代的符号项s(j-1)乘以 当前
Figure BDA00028035955600001129
的符号值求得。假设经过L次迭代后,
Figure BDA00028035955600001130
的值(每次迭代后已更新为
Figure BDA00028035955600001131
所 以此时
Figure BDA0002803595560000121
)小于或等于2b,则迭代过程结束。
此时,若符号项s(L)为1,则
Figure BDA0002803595560000122
保持不变;
若符号项s(L)为-1,则更新
Figure BDA0002803595560000123
然后进行判断,如果
Figure BDA0002803595560000124
则最终取模结果为0;
如果
Figure BDA0002803595560000125
则最终取模结果为
Figure BDA0002803595560000126
如果
Figure BDA0002803595560000127
则最终取模结果为
Figure BDA0002803595560000128
可选的,当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,…
从而可以推导出:
Figure BDA0002803595560000129
此时,计算加权和过程中的乘法操作简化为移位操作,权值的计算简化为幂 指数和符号项的计算,从而可以进一步的简化计算,提高运算设备的计算效率。
如果所有权值pi都小于2n-1,即(S-1)k<n-1,可以直接计算幂指数ik。
如果某些权值pi大于或等于2n-1,即(S-1)k≥n-1时,可以预先计算存 储幂指数((ik-n+1)mod(n-1-k))+k和符号项
Figure BDA00028035955600001210
其中,当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,令
Figure BDA00028035955600001211
s=1,即 执行下述403;如果bn-2=0,将b表示为b=2n-1+p,0≤p<2n-2,令
Figure BDA0002803595560000131
s=-1,即执行下述404。其中,n表示b的位宽,s表示符号项。
403、除数b=2n-p,
Figure BDA0002803595560000132
s=1。
404、除数b=2n-1+p,
Figure BDA0002803595560000133
s=-1。
405、初始化被除数
Figure BDA0002803595560000134
符号项
Figure BDA0002803595560000135
迭代计数器值j=0。
406、判断是否
Figure BDA0002803595560000136
如果
Figure BDA0002803595560000137
则执行407至412。;如果
Figure BDA0002803595560000138
则执行步骤413。
407、将被除数
Figure BDA0002803595560000139
以位宽
Figure BDA00028035955600001310
拆分为连续的S段,各段的十进制整数表示为
Figure BDA00028035955600001311
将二进制形式的被除数
Figure BDA00028035955600001312
以位宽
Figure BDA00028035955600001313
为一段从最低位开始拆分为连续的
Figure BDA00028035955600001314
段,其中,最高位所在一段的位数为
Figure BDA00028035955600001315
其余各段的位数为
Figure BDA00028035955600001316
拆分后各段的十进制整数表示为
Figure BDA00028035955600001317
其中0≤i≤S-1。
408、将拆分后各整数
Figure BDA00028035955600001318
对除数b取模后,加权相加得到
Figure BDA00028035955600001319
其中,权值为sipi或者si·(pi mod b)。
可选的,在除数b可以表示为
Figure BDA00028035955600001320
的形式时,加权过程中的乘法可以进一 步简化为移位运算。
409、判断是否
Figure BDA00028035955600001321
(6)如果
Figure BDA00028035955600001322
迭代计数器值j=j+1,即执行 410和412;如果
Figure BDA00028035955600001323
Figure BDA00028035955600001324
迭代计数器值j=j+1, 即执行411和412,并返回执行步骤406。
410、
Figure BDA00028035955600001325
411、
Figure BDA00028035955600001326
412、j=j+1。
413、判断是否
Figure BDA00028035955600001327
如果符号项
Figure BDA00028035955600001328
则更新
Figure BDA00028035955600001329
并判断是否
Figure BDA00028035955600001330
即执行414和415;否则
Figure BDA00028035955600001331
保持不变,并判断是否
Figure BDA0002803595560000141
即直接执行415。
414、
Figure BDA0002803595560000142
415、判断是否
Figure BDA0002803595560000143
如果
Figure BDA0002803595560000144
则最终取模结果为0,即执行416,如果
Figure BDA0002803595560000145
不等于2b,则执 行417至419。
416、结果为0。
417、判断是否
Figure BDA0002803595560000146
如果
Figure BDA0002803595560000147
则最终取模结果为
Figure BDA0002803595560000148
即执行418;
如果
Figure BDA0002803595560000149
则最终取模结果为
Figure BDA00028035955600001410
计算结束,即执行419。
418、结果为
Figure BDA00028035955600001411
419、结果为
Figure BDA00028035955600001412
本发明实施例提供的整数取模运算方法,可以根据除数b的次高位bn-2的取 值情况,将其表示为
Figure BDA00028035955600001413
的形式,使得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)需要的存储资源小,在除数满足一定要求时甚至无需存储资源。
(3)当除数可以表示为
Figure BDA00028035955600001414
的形式时,可将乘法操作简化为移位操作, 适合硬件电路实现。
(4)针对除数的两种形式b=2n-p和b=2n-1+p分别给出了具体的迭代 计算方法,并针对除数可以表示为
Figure BDA00028035955600001415
的情况,对计算过程作了进一步简化, 将乘法简化为移位操作。
可选的,在被除数a和除数b均为无符号整数时,根据上述101至105可以直 接计算得到a mod b的取模结果。当被除数a和除数b为有符号整数时,可以先求 被除数a和除数b的绝对值,按照上述101至105计算出|a|mod|b|之后,可以根 据取模运算的定义
Figure BDA0002803595560000151
和取模运算的性质对结果进行调整,以 得到取模结果a mod b,具体方法如下表1所示。
表1
Figure BDA0002803595560000152
可选的,在判断其他取模运算是否落入本发明实施例所保护技术方案的范 围内时,对待检测的运算电路或程序配置上述除数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作为被除数;
将被除数从最低位开始拆分为S段,得到各段表示的整数
Figure BDA0002803595560000161
其中,
Figure BDA0002803595560000162
为a的位宽,0≤i≤S-2,其中,
Figure BDA0002803595560000163
为n或者n-1;
将各段表示的整数
Figure BDA0002803595560000164
和整数b,计算整数a的同余式
Figure BDA0002803595560000165
根据被除数的同余式
Figure BDA0002803595560000166
确定整数a对整数b取模的取模结果。
可选的,运算电路501,具体用于将各段表示的整数
Figure BDA0002803595560000167
对整数b取模,得到 各段表示的整数
Figure BDA0002803595560000168
对应的取模结果;
将各段表示的整数
Figure BDA0002803595560000169
对应的取模结果,根据权值进行加权运算,得到被除数 的同余式
Figure BDA00028035955600001610
可选的,
Figure BDA00028035955600001611
大于0,运算电路501,具体用于若
Figure BDA00028035955600001612
则确定取模结果为0; 若
Figure BDA00028035955600001613
则确定取模结果为
Figure BDA00028035955600001614
Figure BDA00028035955600001615
则确定取模结果为
Figure BDA00028035955600001616
Figure BDA00028035955600001617
Figure BDA00028035955600001618
作为被除数,并执行将被除数从最低位开始拆分为S段的步骤,直到 被除数的同余式小于或等于2b,以得到取模结果。
可选的,
Figure BDA00028035955600001619
小于0,运算电路501,具体用于若
Figure BDA00028035955600001620
则确定取模结 果为0;若
Figure BDA00028035955600001621
则确定取模结果为
Figure BDA00028035955600001622
Figure BDA00028035955600001623
则确定取 模结果为
Figure BDA00028035955600001624
Figure BDA00028035955600001625
Figure BDA00028035955600001626
作为被除数,并执行将被除数从最低位开 始拆分为S段的步骤,直到被除数的同余式小于或等于2b,以得到取模结果。
可选的,权值为
Figure BDA00028035955600001627
或者
Figure BDA00028035955600001628
其中,
Figure BDA00028035955600001629
为1或-1。
可选的,若整数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)。
可选的,若p=2k,则
Figure BDA0002803595560000171
简化为:
Figure BDA0002803595560000172
可选的,若整数b表示为b=2n-p,1≤p≤2n-2,则
Figure BDA0002803595560000173
为n。
可选的,若整数b表示为b=2n-1+p,0≤p<2n-2,则
Figure BDA0002803595560000174
为n-1。
第二种可选的实现方式:
本发明实施例提供还提供一种运算装置,如图5所示,该装置包括:
运算电路501,用于将二进制形式的整数a作为被除数,将二进制形式的 整数b作为除数;根据整数b的位宽将被除数从最低位开始拆分为S段,得到各 段表示的整数
Figure BDA0002803595560000175
根据各段表示的整数
Figure BDA0002803595560000176
和整数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段,得到各段表示的整数
Figure BDA0002803595560000177
根据各段表示的整数
Figure BDA0002803595560000178
和整数b,计算被除数的同余式
Figure BDA0002803595560000179
根据被除数的同余式
Figure BDA00028035955600001710
确定整数a对整数b取模的取模结果;其中,
Figure BDA00028035955600001711
m为整数a的位宽, 0≤i≤S-2,
Figure BDA00028035955600001712
为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
5.根据权利要求1所述的方法,其特征在于,所述计算整数a对目标形式的所述整数b取模的取模结果,包括:
将二进制形式的整数a作为被除数;
将所述被除数从最低位开始拆分为S段,得到各段表示的整数
Figure FDA0002803595550000019
其中,
Figure FDA0002803595550000011
m为a的位宽,0≤i≤S-2,其中,
Figure FDA00028035955500000110
为n或者n-1;
将各段表示的整数
Figure FDA0002803595550000012
和所述整数b,计算所述整数a的同余式
Figure FDA00028035955500000111
根据所述被除数的同余式
Figure FDA0002803595550000018
确定所述整数a对所述整数b取模的取模结果。
6.根据权利要求5所述的方法,其特征在于,所述将各段表示的整数
Figure FDA00028035955500000112
和所述整数b,计算所述被除数的同余式
Figure FDA00028035955500000115
包括:
将所述各段表示的整数
Figure FDA0002803595550000013
对所述整数b取模,得到所述各段表示的整数
Figure FDA00028035955500000113
对应的取模结果;
将所述各段表示的整数
Figure FDA0002803595550000014
对应的取模结果,根据权值进行加权运算,得到所述被除数的同余式
Figure FDA0002803595550000015
7.根据权利要求5所述的方法,其特征在于,若所述
Figure FDA00028035955500000114
大于0,则所述根据所述被除数的同余式
Figure FDA0002803595550000016
确定所述整数a对所述整数b取模的取模结果,包括:
Figure FDA0002803595550000017
则确定所述取模结果为0;
Figure FDA0002803595550000021
则确定所述取模结果为
Figure FDA0002803595550000022
Figure FDA0002803595550000025
则确定所述取模结果为
Figure FDA0002803595550000023
Figure FDA0002803595550000024
将所述
Figure FDA0002803595550000026
作为所述被除数,并执行所述将所述被除数从最低位开始拆分为S段的步骤,直到所述被除数的同余式小于或等于2b,以得到取模结果。
8.根据权利要求5所述的方法,其特征在于,若所述
Figure FDA00028035955500000211
小于0,则所述根据所述被除数的同余式
Figure FDA0002803595550000027
确定所述整数a对所述整数b取模的取模结果,包括:
Figure FDA0002803595550000028
则确定所述取模结果为0;
Figure FDA0002803595550000029
则确定所述取模结果为
Figure FDA00028035955500000210
Figure FDA00028035955500000212
则确定所述取模结果为
Figure FDA00028035955500000213
Figure FDA00028035955500000214
将所述
Figure FDA00028035955500000215
作为所述被除数,并执行所述将所述被除数从最低位开始拆分为S段的步骤,直到所述被除数的同余式小于或等于2b,以得到取模结果。
9.根据权利要求5所述的方法,其特征在于,所述权值为
Figure FDA00028035955500000216
或者
Figure FDA00028035955500000217
其中,
Figure FDA00028035955500000218
为1或-1。
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)。
11.根据权利要求9所述的方法,其特征在于,若p=2k,则
Figure FDA00028035955500000219
简化为:
Figure FDA00028035955500000220
12.根据权利要求5所述的方法,其特征在于,
若所述整数b表示为b=2n-p,1≤p≤2n-2,则所述
Figure FDA00028035955500000221
为n;
或者,
若所述整数b表示为b=2n-1+p,0≤p<2n-2,则所述
Figure FDA00028035955500000222
为n-1。
13.一种整数取模运算方法,其特征在于,包括:
将二进制形式的整数a作为被除数,将二进制形式的整数b作为除数;其中,所述整数b表示为目标形式,所述目标形式包括:2n-p的形式,和/或,2n-1+p的形式,0≤p≤2n-2,n大于或等于1,n为整数b的位宽;
根据所述整数b的位宽将所述被除数从最低位开始拆分为S段,得到各段表示的整数
Figure FDA00028035955500000310
其中,0≤i≤S-2;
根据所述各段表示的整数
Figure FDA00028035955500000311
和所述整数b,计算所述整数a对所述整数b取模的取模结果。
14.一种整数取模运算方法,其特征在于,包括:
将二进制形式的整数a作为被除数,将二进制形式的整数b作为除数;
将所述被除数从最低位开始拆分为S段,得到各段表示的整数
Figure FDA00028035955500000312
其中,
Figure FDA0002803595550000039
m为所述整数a的位宽,0≤i≤S-2,其中,
Figure FDA0002803595550000031
为n或者n-1,n为整数b的位宽;
根据所述各段表示的整数
Figure FDA00028035955500000313
和所述整数b,计算所述被除数的同余式
Figure FDA0002803595550000032
其中,所述整数b表示为目标形式,所述目标形式包括:2n-p的形式,和/或,2n-1+p的形式,0≤p≤2n-2,n大于或等于1;
根据所述被除数的同余式
Figure FDA0002803595550000033
确定所述整数a对所述整数b取模的取模结果。
15.一种运算装置,其特征在于,包括:
运算电路,用于计算整数a对目标形式的整数b取模的取模结果;
其中,二进制形式的所述整数b表示为目标形式,所述目标形式包括:2n-p的形式,和/或,2n-1+p的形式,其中,n为所述整数b的位宽,0≤p≤2n-2,n大于或等于1。
16.一种运算装置,其特征在于,包括:
运算电路,用于将二进制形式的整数a作为被除数,将二进制形式的整数b作为除数;根据所述整数b的位宽将所述被除数从最低位开始拆分为S段,得到各段表示的整数
Figure FDA00028035955500000314
根据所述各段表示的整数
Figure FDA00028035955500000315
和所述整数b,计算所述整数a对所述整数b取模的取模结果;
其中,所述整数b表示为目标形式,所述目标形式包括:2n-p的形式,和/或,2n-1+p的形式,0≤p≤2n-2,n大于或等于1,n为整数b的位宽;0≤i≤S-2。
17.一种运算装置,其特征在于,包括:
运算电路,用于将二进制形式的整数a作为被除数,将二进制形式的整数b作为除数;将所述被除数从最低位开始拆分为S段,得到各段表示的整数
Figure FDA0002803595550000036
根据所述各段表示的整数
Figure FDA00028035955500000316
和所述整数b,计算所述被除数的同余式
Figure FDA0002803595550000034
根据所述被除数的同余式
Figure FDA0002803595550000038
确定所述整数a对所述整数b取模的取模结果;其中,
Figure FDA0002803595550000035
m为所述整数a的位宽,0≤i≤S-2,
Figure FDA0002803595550000037
为n或者n-1,n为整数b的位宽;所述整数b表示为目标形式,所述目标形式包括:2n-p的形式,和/或,2n-1+p的形式,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所述的整数取模运算方法。
CN202011359605.1A 2020-11-27 2020-11-27 一种整数取模运算方法、装置及终端设备 Pending CN112363687A (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117742664A (zh) * 2024-02-19 2024-03-22 粤港澳大湾区数字经济研究院(福田) 基于gpu的求模方法、装置、设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
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 京东方科技集团股份有限公司 分段式除法器、分段式除法运算方法、以及电子设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
王国才, 施荣华: "利用高位信息的快速模运算算法", 计算技术与自动化, no. 03, pages 26 - 29 *

Cited By (2)

* Cited by examiner, † Cited by third party
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